2012-05-15 23 views
1

我试图在Glassfish上运行java web服务。有一些初始化代码设置了一些变量,并从Glassfish环境本身检索一些信息。 我在@WebService类的静态初始化程序中有这样的代码,但是这段代码看起来太早调用,只要WebService端点被部署就会运行,而一旦整个Web服务成功运行,我就需要它运行部署。Glassfish Web部署后执行代码

我试过代码移入WebService类的构造函数,但后来当我走进测试网页,并发送了一些数据,使方法运行Web代码只运行。

有没有什么办法可以设置一些初始化代码,在整个Web服务部署完成后立即运行?

回答

6

选项1:在GlassFish中你有Lifecycle modules

选项2: 您也可以编写一个ServletContextListener的能力,当上下文被加载到被触发:

public class MyServlet implements ServletContextListener { 

    public void contextInitialized(ServletContextEvent e) { 
     // implementation code 
    } 

    public void contextDestroyed(ServletContextEvent e) { 
     // implementation code 
    } 
} 

参考:

+0

像梦一样工作!谢谢! –

0

是@Jaynathan Leung,用soapUI你可以部署Web服务并用输入和输出数据测试你的编程。我希望能帮助你。 :)

+0

对不起,我不是要测试的代码,我想对部署代码运行,自动。静态初始化没有工作,当我运行从NetBeans中的代码,但是当我通过./asadmin GlassFish上部署.war部署WebService.war,似乎为时过早运行代码。 –

+0

用soapUI可以**部署WAR文件**这个代码运行服务,希望能理解你。 :)。尝试使用soapUI并告诉我,如果你愿意,如果将帮助你。 – hekomobile