1

こんにちは、struts 2 を使用しており、サーバーが起動した直後にメソッドを呼び出したいと考えています。サーバーの起動時と同様に、FILTER DISPATCHER を使用できます。私は jax ws を使用しています。jax クライアントとエンドポイント プロジェクトを同じ jboss サーバーにデプロイしています。この Plz ヘルプの解決方法

4

3 に答える 3

2

ServletContextListenerサーブレットの起動に応答するように実装できます。

次のように実装を作成します。

public class SimpleInitializer implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //Place your startup logic here.
    }
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }
}

次に、次のようにweb.xmlに含めます。

<listener>
    <display-name>SIMPLE Startup Listener</display-name>
    <listener-class>com.you.init.SimpleInitializer</listener-class>
</listener>
于 2012-09-26T06:57:38.633 に答える
1
MBeanServerConnection server = (MBeanServerConnection)new InitialContext().lookup("jmx/rmi/RMIAdaptor");
ObjectName on = new ObjectName("jboss.system:type=Server");
Object var = server.getAttribute(on, "Started");
System.out.println(**var**);

もう1つできることは、スレッドを実行し、FilterDispatcherでの値を確認することですvar。trueの場合は、Webサービスを呼び出し、データをサーブレットコンテキストに設定します。それ以外の場合は、スレッドを特定の時間スリープさせます。取得した値が表示されたら、このスレッドを停止します。

于 2012-09-26T17:26:37.383 に答える
0

// Gaurav Kumar (Skilrock Technology の SE)

    try{
    MBeanServerConnection server = (MBeanServerConnection)new InitialContext().lookup("jmx/rmi/RMIAdaptor");
    ObjectName on = new ObjectName("jboss.system:type=Server");
    Object var = server.getAttribute(on, "Started");
    System.out.println(var);

        String serverURL = "http://gaurav-compaq-presario-c700-notebook-pc:8080/WServer?wsdl";
        String message = "gaurav";
        HashMap env = new HashMap();
        String[] creds = new String[1];
        creds[0] = message;
        env.put(JMXConnector.CREDENTIALS, creds);
        JMXServiceURL url = new JMXServiceURL(serverURL);
        JMXConnector jmxc = JMXConnectorFactory.connect(url, env);
           // Remember to call jmxc.close() when you are done with server connection.
        MBeanServerConnection server1 = jmxc.getMBeanServerConnection();
          System.out.println(server.getAttribute(new ObjectName("MyDomain:key=property"), "AnAttribute"));
          server.invoke(new ObjectName("MyDomain:key=property"), "doSomething", new Object[0], new String[0]);
    }catch(Exception e){
        System.out.println(e);
    }
于 2012-09-26T17:09:46.867 に答える