我尝试在 GlassFish JAX-WS Web 服务中部署,这是定义 Web 服务的类片段。请注意,我在 EJB 端点上实现了 Provider 接口。
@Stateless(name = "HelloWorldEJBWS")
@WebServiceProvider(
portName = "HelloWorldWSPort",
serviceName = "HelloWorldWSService",
targetNamespace = "http://ivan.com/",
wsdlLocation ="HelloWorldEJBProvider.wsdl")
@ServiceMode(value = Service.Mode.PAYLOAD)
public class HelloWorldEJBWS implements Provider<Source> {
public Source invoke(final Source inRequestMessage) {
...
}
}
问题在于在 GlassFish (3.1.2.2) 中部署服务。F。
[#|2012-09-08T16:39:15.682-0400|信息|glassfish3.1.2|javax.enterprise.system。container.ejb.com.sun.ejb.containers |_ThreadID=20;_ThreadName=Thread-2;|EJB5181:EJB HelloWorldEJBWS 的可移植 JNDI 名称:[java:global/JAX-WS_GreetingEJBMutualAuthProvider/HelloWorldEJBWS, java:global/JAX-WS_GreetingEJBMutualAuthProvider /HelloWorldEJBWS!javax.xml.ws.Provider]|#]
[#|2012-09-08T16:39:15.792-0400|INFO|glassfish3.1.2|javax.enterprise.webservices.org.glassfish.webservices|_ThreadID=20;_ThreadName=Thread-2;|WS00019:EJB 端点部署了 JAX -WS_GreetingEJBMutualAuthProvider 在地址处监听http://ABRAMOV1:8088/HelloWorldWSService/com.ivan.wsejb.provider.HelloWorldEJBWS |#]
即使它显示端点已部署 - 不是。我无法到达此端点,并且它未显示在 GlassFish 控制台中。
为了比较,我在使用 @WebService 而不是 @WebServiceProvider 部署服务时提供了日志
[#|2012-09-08T16:41:50.514-0400|INFO|glassfish3.1.2|javax.enterprise.webservices.org.glassfish.webservices|_ThreadID=22;_ThreadName=Thread-2;|WS00019:EJB 端点部署了 JAX -WS_GreetingEJBMutualAuth 在地址处监听http://ABRAMOV1:8088/HelloWorldEJBWSService/HelloWorldEJBWS|#]
在这种情况下,端点部署正确,一切正常。
这是我应用@WebService 时的代码片段
@Stateless(name = "HelloWorldEJBWS")
@WebService()
public class HelloWorldEJBWS {
public String hello(final String inMessage) {
...
}
}
我做错什么了吗 ?