是。
如果您可以创建一个Java方法,该方法是1)使用@WebMetod进行注释,并且2)获取所需的参数并调用您的第三方代码,并将其作为Web应用程序打包,您可以使用Metro堆栈 - https://metro.dev.java.net/ - 使用任何Servlet 2.5 Web容器(将其放在Web容器全局库文件夹中)将上述方法公开为Web服务。我们正在使用嵌入式Jetty,但我已经验证了它可以与Tomcat一起使用。
我http://archive.midrange.com/java400-l/200904/msg00071.html
我下载地铁1.4从https://metro.dev.java.net/1.4/写了我的调查结果(1.5版是非常新,我没有看过它),最终解压缩到几个jar文件。
将webservices-api.jar,webservices-rt.jar,webservices-extra-api.jar和webservices-extra.jar(四个文件)复制到包含所有tomcat共有的“祝福”jar文件的文件夹 - 我相信它是Tomcat 6的$ {TOMCAT}/lib。[1]
在Eclipse项目最终结束了是一个WAR文件:
package foo;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
Ping is a simple web service class providing a "yes, we have contact" class.
Currently the doPing() method provides a response with the host name and
address (if available) and the current server time.
*/
@javax.jws.WebService
public class Ping {
@javax.jws.WebMethod(action = "doPing")
public String doPing() {
System.out.println("Ping.doPing() called.");
String hostName;
try {
hostName = InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException e) {
hostName = "unknown (" + e.getMessage() + ")";
}
String hostAddress;
try {
hostAddress = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
hostAddress = "unknown (" + e.getMessage() + ")";
}
return "Reached '" + hostName + "' (" + hostAddress + ") at "
+ new java.util.Date() + " java.version="
+ System.getProperty("java.version", "(not set)");
}
}
- 在你的WEB-INF/web.xml中添加此片段:
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<description>JAX-WS endpoint - this servlet must handle all endpoints</description>
<display-name>webservice</display-name>
<servlet-name>webservice</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- each endpoint must have a mapping to the JAX-WS endpoint servlet -->
<servlet-mapping>
<servlet-name>webservice</servlet-name>
<url-pattern>/ws</url-pattern>
</servlet-mapping>
- 创建一个新的文件,WEB-INF /太阳jaxws.xml:
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
<endpoint name='ping' implementation='foo.Ping'url-pattern='/ws'>
</endpoint
</endpoints>
现在在你部署的Web应用程序部署WAR文件到上面制备的Tomcat和开放“/ WS”。这可能是http://localhost:8080/foo/ws
;。这将为您提供一个信息页面,其中包含所有Web服务(包括Ping)的WSDL链接。此链接可直接用于任何WSDL处理工具,包括用于Java的Eclipse IDE中的Web服务工具EE开发人员和WSDCi。
希望这有助于你:)
[1]不使他们的全球会给你的类加载器的问题!
只是为了记录。这就要求Java 6,我暗示的假设是不可用的,正如你所说的,你唯一的环境是WebSphere 6.1。 很高兴你找到了解决方案! – 2010-03-03 14:25:12