JAX-WS WebService 是sun 公司自己推出的产品,给自己做个记录,好记性不如烂笔头,方便日后查询,废话不说直接干货。

第一种传统方式:

创建一个类如下:

package com.webservice.test;import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Endpoint;/** *  @WebService - 它是一个注解,用在类上指定将此类发布成一个ws. Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。 * @author lt * */
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class HelloWebService {@WebMethodpublic  String HellowWord(String name) {return "hellow:"+name;}@WebMethodpublic  String HellowWord2(String name) {return "hellow:"+name;}public static void main(String[] args) {// TODO Auto-generated method stub/** *参数1:服务的发布地址 *参数2:服务的实现者 */  System.out.println("发布服务...");Endpoint.publish("http://localhost:9080/JAXWebService/helloWord",new HelloWebService());  }}
</pre><pre>

用 wsimport -keep  http://localhost:9080/JAXWebService/helloWord?wsdl 生成客户端(需要JDK 1.6以上)

然后再客户端直接调用即可,客户端调用代码片段:

<span style="white-space:pre">      </span>HelloWebService2Service hellow2S=new HelloWebService2Service();HelloWebService2 hellow=hellow2S.getHelloWebService2Port();System.out.println("11");System.out.println(hellow.hellowWord2("涛哥"));

第二种方式:不需要生成客户端(此方式为servlet方式),个人感觉生成客户端过于繁琐 。

在工程目录 web-inf 下面创建 sun-jaxws.xml 文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"version="2.0"><endpoint name="SayHiService"implementation="com.webservice.style2.HelloWebService2"url-pattern="/service/helloWordStyle2" /></endpoints>

同时在web.xml文件 中添加如下配置:

<!-- web service   --><!-- ws 监听 --><listener>  <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener  </listener-class></listener><servlet><servlet-name>SayHiService</servlet-name>  <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet  </servlet-class></servlet>  <servlet-mapping>  <servlet-name>SayHiService</servlet-name>  <url-pattern>/service/helloWordStyle2</url-pattern>  </servlet-mapping>

根据浏览器查看 http://localhost:9080/JAXWebService/service/helloWordStyle2?wsdl 文件

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<!--Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3-hudson-390-.
-->
<!--Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3-hudson-390-.
-->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://style2.webservice.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://style2.webservice.com/" name="HelloWebService2Service">
<types/>
<message name="HellowWord2">
<part name="arg0" type="xsd:string"/>
</message>
<message name="HellowWord2Response">
<part name="return" type="xsd:string"/>
</message>
<portType name="HelloWebService2">
<operation name="HellowWord2">
<input message="tns:HellowWord2"/>
<output message="tns:HellowWord2Response"/>
</operation>
</portType>
<binding name="HelloWebService2PortBinding" type="tns:HelloWebService2">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<operation name="HellowWord2">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal" namespace="http://style2.webservice.com/"/>
</input>
<output>
<soap:body use="literal" namespace="http://style2.webservice.com/"/>
</output>
</operation>
</binding>
<service name="HelloWebService2Service">
<port name="HelloWebService2Port" binding="tns:HelloWebService2PortBinding">
<soap:address location="http://localhost:9080/JAXWebService/service/helloWordStyle2"/>
</port>
</service>
</definitions>

然后客户端调用代码:

package com.jaxws.ws.test;import java.net.URL;import javax.xml.namespace.QName;import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/** 直接通过网址调用*/
public class CallWebServiceTool {public static void main(String[] args) {// TODO Auto-generated method stub
//      try {
//          String endpoint = "http://localhost:9080/JAXWebService/service/helloWordStyle2?wsdl";
//          //直接引用远程的wsdl文件
//          Service service = new Service();
//          Call call = (Call) service.createCall();
//          call.setTargetEndpointAddress(endpoint);
//          call.setOperationName(new QName("http://style2.webservice.com/", "HellowWord2"));//WSDL里面描述的接口名称
//          call.addParameter("arg0", org.apache.axis.encoding.XMLType.XSD_DATE,
//          javax.xml.rpc.ParameterMode.IN);//接口的参数
//          call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
//          String temp = "涛哥1";
//          String result = (String)call.invoke(new Object[]{temp});
//          //给方法传递参数,并且调用方法
//          System.out.println("result is "+result);
//          }
//          catch (Exception e) {
//          System.err.println(e.toString());
//      }String endpoint = "http://localhost:9080/JAXWebService/service/helloWordStyle2?wsdl";String namespace="http://style2.webservice.com/";String method="HellowWord2";String paramater="arg0";String message="涛哥v5";callWebservice(endpoint, namespace, method, paramater, message);}public static void callWebservice(String endpoint,String namespace,String method,String paramater,String message) {try {
//          String endpoint = "http://localhost:9080/JAXWebService/service/helloWordStyle2?wsdl";//直接引用远程的wsdl文件Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(new URL(endpoint));call.setOperationName(new QName(namespace, method));//WSDL里面描述的接口名称call.addParameter(paramater, org.apache.axis.encoding.XMLType.XSD_DATE,javax.xml.rpc.ParameterMode.IN);//接口的参数call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 String temp = message;String result = (String)call.invoke(new Object[]{temp});//给方法传递参数,并且调用方法System.out.println("result is "+result);}catch (Exception e) {System.err.println(e.toString());}}}

调用结果:result is 你好:涛哥v5

可能需要用到的jar包 服务端

客户端调用:

总结一下sun 公司自己的 JAX-WS WebService 用法相关推荐

  1. spring和maven_具有Spring和Maven教程的JAX–WS

    spring和maven Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: ...

  2. 带有Spring和Maven教程的JAX–WS

    Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: 公开基于Servlet的 ...

  3. 开发Java,市值一度超过两千亿美元,造福无数程序员的Sun公司,也最终“陨落”...

    "那些疯狂到认为自己能够改变世界的人,才是真正能够改变世界的人." 这是乔布斯曾说过的话,也是很多技术大佬都会坚守的信念.最突出的表现则在于他们性格方面足够的特立独行,甚至是有些偏 ...

  4. 旧闻 - 来怀念一下Sun公司

    2009年1月22日消息,据国外媒体报道,在公开保证消除监管部门的担心一个月之后,甲骨文星期四赢得了欧盟委员会无条件地批准其70亿美元收购Sun微系统公司的交易. 这已经是大概一个月前的旧闻了.当初我 ...

  5. 且看微软的.Net和Sun公司的J2EE如何对垒

    且看微软的.Net和Sun公司的J2EE如何对垒[url]http://tech.163.com[/url] 2006-03-21 20:21:05 来源: sun 网友评论0 条论坛导读:面对微软推 ...

  6. Sun公司因为不懂销售和运营,导致陨落,最终软件还是打败了硬件

    @Author:Runsen 学过Java的人都知道Sun 是一个在计算机发展史上有着重要历史地位的公司,10 年被 Oracle 收购.今天我就来分享 Sun 到底是怎么陨落. Sun公司因为不懂销 ...

  7. 参加Sun公司的新产品的发布会议

    在2004年的最后阶段,能收到Sun公司的邀请函,去参加"Sun秋季产品发布会",是在沈阳的丽都喜来登酒店,幸运的是,这次地点是上次微软公司msdn发布会的邻居,也是五星级别的.不 ...

  8. 软件公司 sun公司 Oracle公司

    一.腾讯 公司名称 深圳市腾讯计算机系统有限公司 创始人 马化腾.张志东.许晨晔.陈一丹.曾李青 董事局主席 马化腾 总    裁 刘炽平 成立时间 1998年11月11日 总部地点 中国深圳 总部地 ...

  9. 怎样拿下SUN公司的SCJP认证?

    SCJP本来易拿下,可我第一次却恰恰为59%,郁闷啊!1250RMB的银子啊!你们可不要蹈偶的覆辙啊!想过SCJP的哥们,可以进去看看我的体会....... SUN的SCJP资格证书,想说拿你却并不难 ...

最新文章

  1. 多协程实例分析(一)
  2. 将0移到最后,在原数组操作,并且不能改变源数据顺序(JS编程)
  3. 用计算机上的画图制作贺卡,用画图制作贺卡
  4. 详解图的各种令人心慌的概念和四种图的存储结构(整理到吐)
  5. [设计模式]合成复用原则
  6. 高能预警!Apache Flink Meetup · 上海站返场啦
  7. R7-2 谁是赢家 (10 分)
  8. Photoshop修复和合成梦幻人物
  9. 物联网安全研究领域,最常见的几大安全漏洞
  10. java 标注 json_java – 注释资源以生成JSON,但在响应头中返回“text/plain”
  11. 如何生成1-1000的数字,并且顺序打乱
  12. Golang 结构类型
  13. dbeaver 视图有一个x_《工程制图》——视图、剖视图、断面图、局部放大图
  14. 毕设题目:Matlab优化求解
  15. 信息系统项目管理师项目合同管理
  16. 六级阅读翻译——2017.11.13
  17. A Deep Journey into Super-resolution: A Survey阅读
  18. Debussy软件简介及仿真教程
  19. [置顶] 【游戏产业的5年之变】
  20. 赵小楼《天道》深度解析(75)客观是对现有事实的认可,嘴上认可可不行,得心里认,否则就是自欺

热门文章

  1. ABAP chain语法 SAP
  2. brew link的一些问题
  3. python批量修改图片分辨率完整程序
  4. 【后台定位】Android13后台定位方案
  5. LeetCode算法题127:单词接龙解析
  6. 商用车等车贷的逾期策略开发与系统配置
  7. 个人表现怎么写学生_个人述职报告该怎么写
  8. 长拼图怎么拼?简单的长图拼接教程
  9. 我的2016个人总结
  10. kali安装步骤失败 选择并安装软件_Adobe类软件安装失败的解决方法