2012-09-08 58 views
1

我嘗試在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) { 
    ... 
} 

}

難道我做錯了什麼?

回答

0

我做的一切正確,但被GlassFish誤導。它可能是一個bug ... 當我在端點中實現servlet(第二種情況)的情況下部署web服務時,我可以看到端點,但是在端點實現爲EJB的情況下,端點沒有出現在控制檯中。但我可以通過鏈接http://localhost:8088/HelloWorldWSService/com.ivan.wsejb.provider.HelloWorldEJBWS?wsdl訪問WSDL,並最終通過客戶端測試了Web服務

相關問題