JavaWeb中使用JDK自带的webService-阿里云开发者社区

开发者社区> 沉默王二> 正文

JavaWeb中使用JDK自带的webService

简介: JavaWeb中使用JDK自带的webService
+关注继续查看

前言:项目中需要用到WebService来发起多平台之间的请求和回应,以前对WebService也不甚了解,然后先度娘了概念,这里再描述一下“能使得运行在不同机器上的应用不通过第三方软件和硬件就可以进行数据交换”,供以后的自己翻查。


      下面主要记录一下自己在使用JDK1.6+apache tomcat7创建WebService的过程。



第一步:配置tomcat7环境,需要下载以下jar包jaxb-impl-2.1.2.jar、jaxws-api-2.1.jar,我在附件中提供下载,然后在


建立文件夹endorsed,然后将jar包放进去,这个是因为,如果缺少这两个jar包的话,在启动tomcat的时候以下错误


错误 写道

Caused by: java.lang.NoClassDefFoundError: com/sun/xml/bind/CycleRecoverable


第二步:建立webservice对象,万恶的helloworld


package dwz.business.webservice;

import javax.jws.WebMethod;

import javax.jws.WebParam;

import javax.jws.WebResult;

import javax.jws.WebService;

import javax.jws.soap.SOAPBinding;

import javax.jws.soap.SOAPBinding.Style;

import javax.jws.soap.SOAPBinding.Use;

@WebService

@SOAPBinding(style = Style.RPC, use = Use.LITERAL)

public class HelloWorld {

@WebMethod

@WebResult

public String sayHelloWord(@WebParam String name) {

 return "My name is " + name;

}

}


第三步:在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='TestService'

   implementation='dwz.business.webservice.HelloWorld'

   binding="http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/"

   url-pattern='/jdkService'/>

</endpoints>


第四步:在web.xml中增加以下内容


<listener>          

    <listener-class>  

            com.sun.xml.ws.transport.http.servlet.WSServletContextListener  

    </listener-class>  

 </listener>

 

   <servlet>  

       <servlet-name>TestService</servlet-name>  

       <servlet-class>  

           com.sun.xml.ws.transport.http.servlet.WSServlet  

       </servlet-class>  

   </servlet>  

     

   <servlet-mapping>  

       <servlet-name>TestService</servlet-name>  

       <url-pattern>/jdkService</url-pattern>

   </servlet-mapping>


第五步:lib包中还需要一个jaxws-rt-2.0EA3.jar,附件中有下载



第六步:启动tomcat,然后在浏览器地址中输入以下内容


URL 写道

http://localhost:8080/StarOrder/jdkService?wsdl

StarOder为我的项目名,wsdl为webservice的一种描述语言。



最后,如果成功的话,会出现以下内容


写道

<definitions targetNamespace="http://webservice.business.dwz/" name="HelloWorldService"><types/><message name="sayHelloWord"><part name="arg0" type="xsd:string"/></message><message name="sayHelloWordResponse"><part name="return" type="xsd:string"/></message><portType name="HelloWorld"><operation name="sayHelloWord" parameterOrder="arg0"><input message="tns:sayHelloWord"/><output message="tns:sayHelloWordResponse"/></operation></portType><binding name="HelloWorldPortBinding" type="tns:HelloWorld"><soap12:binding transport="http://www.w3.org/2003/05/soap/bindings/HTTP/" style="rpc"/><operation name="sayHelloWord"><soap12:operation soapAction=""/><input><soap12:body use="literal" namespace="http://webservice.business.dwz/"/></input><output><soap12:body use="literal" namespace="http://webservice.business.dwz/"/></output></operation></binding><service name="HelloWorldService"><port name="HelloWorldPort" binding="tns:HelloWorldPortBinding"><soap12:address location="http://localhost:8080/StarOrder/jdkService"/></port></service></definitions>

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9496 0
使用JDK自带的VisualVM进行Java程序的性能分析
使用JDK自带的VisualVM进行Java程序的性能分析
9 0
【jar】JDK将单个的java文件打包为jar包,并引用到项目中使用【MD5加密】
========================================================================================================================= 后文心得附录:【实际操作使用过程中的使用心得】   1.
1111 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10843 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13186 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11508 0
jdk 8 使用okhttp3 实现 http2
使用jdk8 使用okhttp3 实现http2请求
1027 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6893 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载