天天看点

jaxws-webservice webservice初试

自己也是刚写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);

}

jaxws-webservice webservice初试
jaxws-webservice webservice初试

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);

}

}

jaxws-webservice webservice初试
jaxws-webservice webservice初试

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  ,如果出来东西,就说明成功了,

jaxws-webservice webservice初试
jaxws-webservice webservice初试

ps:发布的时候,需要添加额外的jar包,当时参照前面的那个网址中的例子的时候,会报启动失败,然后我就下载了jaxws-ri-2.2.10.zip把lib的jar放到项目lib下,就可以成功启动

下载地址:https://jax-ws.java.net/latest/download.html

项目树形结构图

jaxws-webservice webservice初试
jaxws-webservice webservice初试
jaxws-webservice webservice初试

4、调用

新建了一个空的项目,然后右击new web service  Client,然后输入地址http://localhost:8088/lmtweb/service/lmtWeb?wsdl,自动生成实体类,调用:

jaxws-webservice webservice初试
jaxws-webservice webservice初试

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();

}

}

}

jaxws-webservice webservice初试
jaxws-webservice webservice初试

控制台输出:

jaxws-webservice webservice初试
jaxws-webservice webservice初试

成功!