2017-06-20 12 views
0

GWT-RPCを使用してクライアント側から起動したいくつかの方法で作業を終了しました。 doSomethingの()GWTがサーバー側からRemoteServiceServletメソッドを呼び出す

は、次のクラスがいるとします(GWT: invoke the same RPC-methods on the server-side as on the client-sideからコピー)

//MyClassService.java - client package 
@RemoteServiceRelativePath("myService") 
public interface MyClassService extends RemoteService{ 
    public doSomething(); 
} 

//MyClassServiceAsync.java - client package 
public interface MyClassServiceAsync{ 
    public void doSomething(AsyncCallback<Void> callback); 
} 

//MyClassServiceImpl.java - server package 
public class MyClassServiceImpl extends RemoteServiceServlet implements MyClassService{ 
    @Override 
    public void doSomething() 
    { 
     //interacts with DB and another stuff 
    } 
} 

今、私は私のScheduledTaskインフラストラクチャから非常に同じメソッドを起動したいと思いますが、これはかのうであれば、私は知りません。 ScheduledTaskインフラストラクチャはサーバー側にあります。私はほとんどすべての言語のネットワーキング面を取り組んできましたが、私は迷っています。これまで私が試してみた:

MyClassServiceImpl a = new MyClassServiceImpl(); 
    a.doSomething(); 

問題は(NullPointerExceptionが)現れるとすぐに、それは最初のdoSomethingのgetServletConfigにいくつかの呼び出しで()の行に当たるとして、()のgetServletContext()はnullを返しますよう。

また、web.xmlからいくつかのパラメータを読み込むようにオーバーライドしたMyClassServiceImpl init()メソッドも呼び出されません。

Thxで事前に!

+0

...など、あなたのGWTのサーブレット、あなたのスケジューラからのクラスを使用しhttps://stackoverflow.com/questions/32741692/how-to-call-one-servlet-to-another- servlet-in-gwt-using-java – Spiff

+0

申し訳ありませんが、私はそこに答えが表示されません。クライアント/フロントサイドは私の問題に関与していません – jpp1jpp1

答えて

0

を具体的にGWTは、関連する重要な情報:

1)web.xmlのうち、あなたの初期化パラメータを移動します。それはひどいメカニズムであり、決してサーブレット仕様にあったはずがありません。 warファイルを作成すると、パラメータが変更されるたびにwarファイルを再構築する必要があることを意味します。 dev、acceptance、prodのパラメータが異なる必要がある場合は、3つの別々のwarファイルを意味します。代わりに、プロパティファイルをファイルシステムのどこかに配置します。余分なJavaパラメータを使用してWebコンテナを起動し、カスタムプロパティの値を設定します(例:-Dmyapp.conf=d:\\conf\\apps\\myapp.conf)。

2)web.xmlからパラメータを移動したので、システム定義のパラメータファイル(System.getProperty("myapp.conf"))から初期化するスタンドアロンクラスを作成できます。サーブレットに関係するものは何も依存しません。

3)

関連する問題