jax ws wsdl2java_使用JAX-WS(JWS)发布WebService(二)

将项目改为maven工程,并发布到Tomcat;

WebService常用到的注解以及作用;

发布过程中遇到的问题总结;

一、将项目改为maven工程,并发布到Tomcat;

继续上一篇,将代码完善成一个web项目,并发布到Tomcat中。因为一些特殊原因我使用的是jdk1.7,Tomcat6.0:

在pom.xml文件中我们引用了jaxws-rt包

4.0.0

com.ycdhz

webservice

0.0.1-SNAPSHOT

UTF-8

UTF-8

UTF-8

com.sun.xml.ws

jaxws-rt

2.2.10

在\webapp\WEB-INF下添加sun-jaxws.xml

在\webapp\WEB-INF下添加web.xml

webservice

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

jaxws

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

1

jaxws

/hello

index.jsp

将项目添加到Tomcat中启动,输入http://localhost:端口号/工程名/hello 访问成功:

e136d6e98b6681e91053f63f198a882d.png

二、WebService常用到的注解以及作用

注解

属性

作用

@WebService

serviceName

对外发布的服务名,指定 Web Service 的服务名称:wsdl:service。默认值为 Java 类的简单名称 + Service。

endpointInterface

服务接口全路径, 指定做SEI(Service EndPoint Interface)服务端点接口

name

此属性的值包含XML Web Service的名称。在默认情况下,该值是实现XML Web Service的类的名称,wsdl:portType 的名称。

portName

wsdl:portName。默认值为 WebService.name+Port。

targetNamespace

指定你想要的名称空间,默认是使用接口实现类的包名的反缀

@WebMethod

operationName

指定与此方法相匹配的wsdl:operation 的名称。默认值为 Java 方法的名称。

action

定义此操作的行为。对于 SOAP 绑定,此值将确定 SOAPAction 头的值。默认值为 Java 方法的名称。

exclude

指定是否从 Web Service 中排除某一方法。默认值为 false。

@WebParam

name

参数的名称。如果操作是远程过程调用(RPC)类型并且未指定partName 属性,那么这是用于表示参数的 wsdl:part 属性的名称。

partName

定义用于表示此参数的 wsdl:part属性的名称。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为BARE 时才使用此参数。

targetNamespace

指定参数的 XML 元素的 XML 名称空间。当属性映射至 XML 元素时,仅应用于文档绑定。默认值为 Web Service 的 targetNamespace。

mode

此值表示此方法的参数流的方向。有效值为 IN、INOUT 和 OUT。

header

指定参数是在消息头还是消息体中。缺省值为 false。

@WebResult

name

当返回值列示在 WSDL 文件中并且在连接上的消息中找到该返回值时,指定该返回值的名称。对于 RPC 绑定,这是用于表示返回值的 wsdl:part属性的名称。

targetNamespace

指定返回值的 XML 名称空间。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为 BARE 时才使用此参数。

header

指定头中是否附带结果。缺省值为false。

partName

指定 RPC 或 DOCUMENT/BARE 操作的结果的部件名称。默认值为@WebResult.name。

三、发布过程中遇到的问题总结

1、java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener

解决方法:检查项目中是不是没有引用jaxws-rt相关包;

因为tomcat 中缺少对jaxws的相关支持,所以需要下载jaxws-ri包,将包中lib下的jar文件复制一份到tomcat的lib包中;

2、在生产的wsdl文件中,没有显示对应的参数类型和参数名

解决方法:在接口中添加@SOAPBinding(style = Style.RPC)注解;

f36749e2e84efac2ea84002945696fbd.png

3、maven工程无法添加到Tomcat6.0的服务中,提示Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules

解决方法:修改工程目录下\.settings\org.eclipse.wst.common.project.facet.core.xml文件,将jst.web的版本改为2.5

1b9785a4146139715b739e5c180b5d25.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值