问题描述
之前做的项目是这样的。项目A:web项目项目B:java项目B是作为一个服务的,通过jms协议与A交互。现在要把B的服务接口,整成一份webservice接口,提供给A项目调用。刚刚看了几个webservice的代码,B项目作为服务器端,是不是必须是web项目才能用webservice技术? 问题补充:如果必须是的话,有什么办法可以中转吗
解决方案
不一定非得是WEB项目才能发布出去, WebService的提出就是说:只要你的机器能上网, 我就能把你整合进来.可以只发布一个类都行, 如下:import javax.jws.WebMethod;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.soap.SOAPBinding.Style;import javax.xml.ws.Endpoint;@WebService@SOAPBinding(style=Style.RPC)public class HelloWorld {@WebMethodpublic String sayHello(String name){System.out.println(name);return "hello "+name;}public static void main(String[] args) {Endpoint.publish("http://localhost:8888/helloworld",new HelloWorld() );}}你把上面的代码直接复制放到一个HelloWorld.java的文件中, 用Eclipse或者命令行执行这个java文件都可以, 运行后main方法阻塞式运行, 打开浏览器访问http://localhost:8888/helloworld?wsdl 你就看见wsdl文档了, 这个类就被发布出去作为服务了, 不需要tomcat等服务器.
解决方案二:
Web Service(SOAP Over HTTP)必须基于web 容器。。那你直接起一个tomcat,把那部分逻辑封后发布web 服务就完了 ..以前的JMS协议接口,必然也使用了消息中间件了。。你这里整Web Service ,也可以使用一个web容器