EJB作为WebService context-root消失了

Jin*_*won 1 web-services ejb glassfish jax-ws

我正在使用JAX-WS开发一个项目.

当我使用@WebServiceWSDL 注释我的端点类时,在控制台中标记为

.../<context-root>/XXXService?wsdl
Run Code Online (Sandbox Code Playgroud)

当我添加@Stateless这些端点时,WSDL没有在控制台中标记,实际地址是

.../XXXService/XXXEndpoint?wsdl
Run Code Online (Sandbox Code Playgroud)

这是正常的还是预期的?

更新

进一步的读者.

我找不到任何解决方案.我决定不使用混合@Stateless+ @WebService.我将这些分开@EJB并@WebServices进行清晰的模块分离.

kol*_*sus 5

你所经历的是预期的行为.如果服务不起作用则是另一回事.当EJB 3.x无状态bean被部署为WS时,它的命名默认为您在那里看到的,

Servername/SIBnameService/SIBName. 
Run Code Online (Sandbox Code Playgroud)

原因很明显:EJB不在Web应用程序的上下文中运行,因此无法解决.您可以使用注释serviceName上的属性自定义默认名称@WebService

从apache 看这个