我没有制作代码,我只是被要求帮助找到问题。我对SOAP一无所知。
从WSDL生成的WebService正在旧的Glassfish v2上运行。
没问题,该服务在portName和serviceName端点都公开。
然后该应用程序被移至Glassfish v3。 现在只能访问portName端点。 serviceName不是。
有没有人有5-6步骤指南来解决这个问题。 我没有心情去挖掘另外50页的Oracle文档,承诺帮助修复问题,然后......没有。我已经花了很长时间在网上跋涉,坦率地说,我的智慧结束了。
答案 0 :(得分:1)
在实现SOAP类中,将wsdlLocation添加到@WebService批注。 删除sun-web.xml和sun-jaxws.xml,以及从web.xml中删除侦听器com.sun.xml.ws.transport.http.servlet.WSServletContextListener。 最后添加一个基本的glassfish-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<context-root>/</context-root>
<class-loader delegate="true"/>
<jsp-config>
<property name="keepgenerated" value="true">
<description>Keep a copy of the generated servlet class' java code.</description>
</property>
</jsp-config>
</glassfish-web-app>
之后,服务器现在找到服务本身,并将它们放在WebService批注指定的位置。