Java 本地WSDL的FileNotFoundException
我尝试为我的jax-ws@Stateless@WebService bean-WebService实现一个消费者。该服务运行良好,我可以使用NetBeans/GlassFish的webservice测试功能成功地对其进行测试 使用者是使用与服务相同的ear部署的Servlet。我使用Java 本地WSDL的FileNotFoundException,java,web-services,jakarta-ee,wsdl,glassfish,Java,Web Services,Jakarta Ee,Wsdl,Glassfish,我尝试为我的jax-ws@Stateless@WebService bean-WebService实现一个消费者。该服务运行良好,我可以使用NetBeans/GlassFish的webservice测试功能成功地对其进行测试 使用者是使用与服务相同的ear部署的Servlet。我使用 @WebServiceRef(wsdlLocation = "http://localhost:8080/EchoService/EchoBean?wsdl") EchoService echo; 但是每当我打开
@WebServiceRef(wsdlLocation = "http://localhost:8080/EchoService/EchoBean?wsdl")
EchoService echo;
但是每当我打开servlet时,我得到的只是一个带有以下根异常的堆栈跟踪
java.io.FileNotFoundException:
http://localhost:8080/EchoService/EchoBean/__container$publishing$subctx/null?WSDL
我可以从http://localhost:8080/EchoService/EchoBean/?WSDL
在浏览器中,但我对\u容器$publishing$subctx/null
部分没有任何线索,我的代码中没有提到这一部分
完整堆栈跟踪可在以下位置获得:
任何帮助都将不胜感激 如果您使用的是Glassfish 4,
@webservicef
注释在servlet和过滤器上无法正常工作。这是在GLASSFISH-20740下归档的。检查
HTH在您的项目中,位于:
“您的项目名称”/Configuration Files/xml资源/web服务引用/“您的web服务名称”/wsdl/
复制“localhost_8080”文件夹并将其粘贴到:
“您的项目名称”/Web页面/Web-INF/wsdl。
也改变了:
@webservicef(wsdlLocation=”http://localhost:8080/EchoService/EchoBean.wsdl“”
致:
@webservicef(wsdlLocation=“WEB-INF/wsdl/localhost_8080/EchoService/EchoBean.wsdl”)
鉴于2013年9月报告了这一点,我的用例似乎并不常见。@jmaschad确实如此。大多数人为此目的使用外部客户端或会话bean。此外,Oracle最近放弃了对Glassfish的商业支持,因此报告的bug现在解决速度要慢得多,如果根本解决不了的话。从Java社区的角度来看,这是一个非常糟糕的决定,因为Glassfish是一个优秀的开源应用服务器,现在它只能作为JavaEE的参考实现。