WebService 简单入门教程(Java Web项目)



基本需求:

1、JDK版本为: jdk1.6以上;

2、创建两个项目(java项目 或 web项目 都可以):服务端(Web_Server)和客户端(Web_Client);

3、因tomcat没有jax-ws所需的依赖环境,所以首先下载Jax-ws RI,即jax-ws reference implemantation, 地址:http://jax-ws.java.net

项目目的:

客户端(Web_Client)中的程序调用 服务端(Web_Server)中的方法;

步骤:(以Java Web项目为例)

1、建立一个项目名为 Web_Server 的Java Web项目,创建包名为  com.demo.server  的包,在该包下创建 接口 名为  ServerFunction 的接口 和 类 名为 ServerFunctionImpl 的实现类;

代码如下:

-------------------------------------------------------------------------------------------------------------------------------

接口代码:

-------------------------------------------------------------------------------------------------------------------------------

package com.demo.server;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public interface ServerFunction {
 
 /*
  * 接口方法用于将传入的字符串转为大写
  */
 @WebMethod
 public String changeWords(@WebParam(name = "words") String words);
  
}
-------------------------------------------------------------------------------------------------------------------------------

实现类代码:

--------------------------------------------------------------------------------------------------------------------------------

package com.demo.server;

import javax.jws.WebService;

@WebService(endpointInterface = "com.demo.server.ServerFunction")
public class ServerFunctionImpl implements ServerFunction {

 /*
  * 方法用于将传入的字符串转为大写
  */
 @Override
 public String changeWords(String words) {
  String str = words;
  str = str.toUpperCase();
  return str;
 }

}

---------------------------------------------------------------------------------------------------------------------------------

2、在  WEB-INF 目录下,创建两个xml文件:sun-jaxws.xml  和 web.xml

代码如下:

---------------------------------------------------------------------------------------------------------------------------------

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='ServerFunction'
    implementation='com.demo.server.ServerFunctionImpl'
    url-pattern='/jdkService'/>    
    <!--
    name='ServerFunction'    web service服务的接口名称
    implementation='com.demo.server.ServerFunctionImpl'   web service服务的接口的实现类全路径
    url-pattern='/jdkService'   url的相对路径
     -->
</endpoints>

-----------------------------------------------------------------------------------------------------------------------------------

web.xml  代码

------------------------------------------------------------------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  id="WebApp_ID"
  version="3.1">
 
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>

 <listener>
  <listener-class>
   com.sun.xml.ws.transport.http.servlet.WSServletContextListener
  </listener-class>
 </listener>

 <servlet>
  <servlet-name>ServerFunction</servlet-name>
  <servlet-class>
   com.sun.xml.ws.transport.http.servlet.WSServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>ServerFunction</servlet-name>
  <url-pattern>/jdkService</url-pattern>
 </servlet-mapping>
 
 <session-config>
        <session-timeout>120</session-timeout>
    </session-config>

</web-app>

---------------------------------------------------------------------------------------------------------------------------------------

3、将下载的  jaxws-ri-2.2.10.zip 压缩包中  lib 文件夹下的 jar包 复制到  Web_Server 项目的 WEB-INF/lib  下,Build Path 到项目里;

4、启动tomcat,在浏览器地址栏输入 http://localhost:8080/Web_Server/jdkService?wsdl  就可以看到该service的详细信息(如果不成功的话,请检查服务器端口是否被占用);

5、建立一个项目名为 Web_Client 的 Java Web 项目;

打开 cmd 输入:

命令:  wsimport -s src的路径 -p 完整包名 -keep webservice的发布地址 ;然后回车就OK了,  

例如:  wsimport -s D:\workspace\Web_Client\src -p com.demo.client -keep http://localhost:8080/Web_Server/jdkService?wsdl

(如果wsimport命令失效,请检查是否把jdk配入环境变量;JAVA_HOME:JDK所在位置;CLASSPATH:%JAVA_HOME%\lib\tools.jar)  

回车后,会出现:

正在解析 WSDL...  

正在生成代码...  

正在编译代码...  

出现以上内容时,恭喜你,成功了!

你可以刷新一下你的  Web_Client  项目,会在  com.demo.client  包下会有对应的WebService生成的文件!

6、在 com.demo.client  该包下创建测试类Test

代码如下:

----------------------------------------------------------------------------------------------------------------------------------

package com.demo.service;

public class Test {
 
 public static void main(String[] args) {
  ServerFunction serverFunction = new ServerFunctionImplService().getServerFunctionImplPort();
  String str = serverFunction.changeWords("hello world");
  
  //在控制台打印的就是在 Web_Server 项目下的  changeWords 方法处理后的字符串
  System.out.println(str);
 }
}

-----------------------------------------------------------------------------------------------------------------------------------

7、运行该测试类Test,会在控制台上打印出大写的  “HELLO WORLD”,说明测试成功!








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值