我嘗試在GlassFish JAX-WS Web服務中部署 以下是Web服務定義的類的片段。請注意,我在EJB端點上實現了Provider接口。無法在GlassFish中同時使用@WebserviceProvider和@Stateless部署Web服務
@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 | INFO | glassfish3.1.2 | javax.enterprise.system。使用EJB的可移植JNDI名稱HelloWorldEJBWS:[java:global/JAX-WS_GreetingEJBMutualAuthProvider/HelloWorldEJBWS,java:global/JAX -WS_GreetingEJBMutualAuthProvider/HelloWorldEJBWS javax.xml.ws.Provider] |#]
[#| 2012-09-08T16:39:15.792-0400 |信息| glassfish3.1.2 | javax.enterprise.webservices.org.glassfish .webservices | _ThreadID = 20; _ThreadName =螺紋-2; | WS00019:EJB端點部署 JAX-WS_GreetingEJBMutualAuthProvider在地址監聽在HTTP:// ABRAMOV1:8088/HelloWorldWSService/com.ivan.wsejb.provider.HelloWorldEJBWS |# ]
E它顯示端點被部署 - 不是。我無法訪問此端點,並且它未在GlassFish控制檯中顯示。 41:2012-09-08T16 |
爲了比較我使用@WebService但不@WebServiceProvider
[#提供當我部署的服務日誌50.514-0400 |信息| glassfish3.1.2 | javax.enterprise .webservices.org.glassfish.webservices | _ThreadID = 22; _ThreadName =螺紋-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) {
...
}
}
難道我做錯了什麼?