如何编写部署时自动执行的 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() {
//...
}
}
我在我的 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() {
//...
}
}