이 콘텐츠는 선택한 언어로 제공되지 않습니다.
30.2. Publishing a Service in a Plain Java Application
Overview 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
When you want to deploy your application as a plain java application you need to implement the logic for publishing your endpoints in the application's
main() method. Apache CXF provides you two options for writing your application's main() method.
- use the
main()method generated by the wsdl2java tool - write a custom
main()method that publishes the endpoints
Generating a Server Mainline 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
The code generators
-server flag makes the tool generate a simple server mainline. The generated server mainline, as shown in Example 30.2, “Generated Server Mainline”, publishes one service provider for each port element in the specified WSDL contract.
For more information see cxf-codegen-plugin.
Example 30.2, “Generated Server Mainline” shows a generated server mainline.
Example 30.2. Generated Server Mainline
package org.apache.hello_world_soap_http;
import javax.xml.ws.Endpoint;
public class GreeterServer {
protected GreeterServer() throws Exception {
System.out.println("Starting Server");
1 Object implementor = new GreeterImpl();
2 String address = "http://localhost:9000/SoapContext/SoapPort";
3 Endpoint.publish(address, implementor);
}
public static void main(String args[]) throws Exception {
new GreeterServer();
System.out.println("Server ready...");
Thread.sleep(5 * 60 * 1000);
System.out.println("Server exiting");
System.exit(0);
}
}
The code in Example 30.2, “Generated Server Mainline” does the following:
Writing a Server Mainline 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
If you used the Java first development model or you do not want to use the generated server mainline you can write your own. To write your server mainline you must do the following:
- Instantiate an
javax.xml.ws.Endpointobject for the service provider. - Create an optional server context to use when publishing the service provider.
- Publish the service provider using one of the
publish()methods. - Stop the service provider when the application is ready to exit.
Example 30.3, “Custom Server Mainline” shows the code for publishing a service provider.
Example 30.3. Custom Server Mainline
package org.apache.hello_world_soap_http;
import javax.xml.ws.Endpoint;
public class GreeterServer
{
protected GreeterServer() throws Exception
{
}
public static void main(String args[]) throws Exception
{
1 GreeterImpl impl = new GreeterImpl();
2 Endpoint endpt.create(impl);
3 endpt.publish("http://localhost:9000/SoapContext/SoapPort");
boolean done = false;
4 while(!done)
{
...
}
5 endpt.stop();
System.exit(0);
}
}
The code in Example 30.3, “Custom Server Mainline” does the following: