0

我没有编写代码,我只是被要求帮助找到问题。我对 SOAP 一无所知。

从 WSDL 生成的 WebService 在旧 Glassfish v2 上运行。

没问题,服务在 portName 和 serviceName 端点上都公开。

然后将该应用程序移至 Glassfish v3。现在只能访问 portName 端点。serviceName 不是。

有没有人有解决这个问题的 5-6 步指南。我没有心情阅读另一份 50 页的 Oracle 文档,承诺帮助解决问题,然后……没有。我涉水过网,已经太久了,坦率地说,我已经束手无策了。

4

1 回答 1

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 注释指定的位置。

于 2013-03-21T15:52:56.750 回答