如何编写部署时自动执行的 Web 服务方法

How to write a web service method which automatically executed when deployed

我在我的 wildfly 服务器上创建了一个网络服务,其方法如下:

public ArrayList<CustomerRecord> QueryCustomer(String[] name,String[] keyword,String client) throws JCoException
{
//  String client="700";
    System.out.println("Query Start");
     ArrayList<CustomerRecord> codelist=new ArrayList<CustomerRecord>();
     CustomerRecord codeItem=new CustomerRecord();
     JCoDestination destination;
     MyDestinationDataProvider myProvider = MyDestinationDataProvider.getInstance();
     MyDestinationDataProvider myProviderN = MyDestinationDataProvider.getInstance();
     if (Environment.isDestinationDataProviderRegistered())
     {
         try {
             destination= JCoDestinationManager.getDestination("ABAP");
         }
         catch (Exception e) {
             
         }
         
     }
     else
     {
        Environment.registerDestinationDataProvider(myProvider);
        
        myProvider.addDestination("ABAP700", JCOtest.connectProperties700);
        myProvider.addDestination("ABAP300", JCOtest.connectProperties300);
        ...

它会首先检查是否存在已注册的DestinationDataProvider,如果存在则使用它,如果不存在则创建一个。我也写了一个JSP访问这个方法
现在我想将这个注册过程分离到另一个方法中,让它在部署或服务器启动时自动 运行 ?那么该怎么做呢?也许为注册方法创建一个 jar 并部署为模块?有帮助吗?谢谢。

您可以将注册部分移至启动单例 EJB 的 @PostConstruct 方法。它会在应用程序加载时由服务器执行。

@Singleton
@Startup
public class StartupBean {

    @PostConstruct
    private void registration() {
        //...
    }
}