自己也是刚写webservice,参考的网上的例子写的,不喜勿喷
参考网址;http://www.cnblogs.com/Johness/archive/2013/04/19/3030392.html
1,写一个webservice的接口
package com.lmt.webservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService
@SOAPBinding(style=SOAPBinding.Style.RPC)
public interface LmtWebService {
@WebMethod
void firstMethod(@WebParam(name = "name") String name);
}
2,实现类(注解@WebService及其endpointInterface属性是必要的)
package com.lmt.webservice;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
//com.lmt.webservice.LmtWebService是上面的接口
@WebService(endpointInterface = "com.lmt.webservice.LmtWebService")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class LmtWebServiceImpl implements LmtWebService{
@Override
public void firstMethod(String name) {
// TODO Auto-generated method stub
System.out.println("name="+name);
}
}
3、发布,基于web服务器serlvet方式
以Tomcat为例,首先编写sun-jaxws.xml文件并放到WEB-INF下:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint name="LmtWebService"
implementation="com.lmt.webservice.LmtWebServiceImpl"
url-pattern="/service/lmtWeb" />
</endpoints>
然后改动web.xml,添加listener和servlet(url-pattern要相同):
<!-- webservice -->
<listener>
<listener-class>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>LmtWebService</servlet-name>
<servlet-class>
com.sun.xml.ws.transport.http.servlet.WSServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LmtWebService</servlet-name>
<url-pattern>/service/lmtWeb</url-pattern>
</servlet-mapping>
部署完以后,在浏览器中输入http://localhost:8088/lmtweb/service/lmtWeb?wsdl ,如果出来东西,就说明成功了,
ps:发布的时候,需要添加额外的jar包,当时参照前面的那个网址中的例子的时候,会报启动失败,然后我就下载了jaxws-ri-2.2.10.zip把lib的jar放到项目lib下,就可以成功启动
下载地址:https://jax-ws.java.net/latest/download.html
项目树形结构图
4、调用
新建了一个空的项目,然后右击new web service Client,然后输入地址http://localhost:8088/lmtweb/service/lmtWeb?wsdl,自动生成实体类,调用:
public class Test {
public static void main(String[] args) {
LmtWebServiceProxy proxy=new LmtWebServiceProxy();
try {
LmtWebService lmtWebService=proxy.getLmtWebService();
lmtWebService.firstMethod("111");;
} catch (RemoteException e2) {
e2.printStackTrace();
}
}
}
控制台输出:
成功!