2012-09-08 21 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服务

相关问题