博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java6 WebService学习
阅读量:6816 次
发布时间:2019-06-26

本文共 3436 字,大约阅读时间需要 11 分钟。

参考了网络上中资料,自己学习实践了一个Java6 WebService.

首先,建立一个WebService:

 

package garfield;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public 
class MyJ6WebService {
        
public String SayHello(String strName) {
                
return "Hello ,"+strName+"!";
        }
        
public 
static 
void main(String[] args) {
                
//
发布WebService,注意如果提示:Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Address already in use: bind
                
//
则需要修改一下发布端口
                Endpoint.publish("http://localhost:8030/garfield.MyJ6WebService", 
new MyJ6WebService());
                System.out.println("WebService was published success !");
        }
}

启动Tomcat,然后运行,系统会输出:WebService was published success !,表示WebService已启动。

 

可以在浏览器中输入地址:

显示WebService信息:

 

  
<?
xml version="1.0" encoding="UTF-8" 
?> 
<!--
  Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. 
  
--> 
<!--
  Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. 
  
--> 
<
definitions 
xmlns:wsu
="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
 xmlns:wsp
="http://www.w3.org/ns/ws-policy"
 xmlns:wsp1_2
="http://schemas.xmlsoap.org/ws/2004/09/policy"
 xmlns:wsam
="http://www.w3.org/2007/05/addressing/metadata"
 xmlns:soap
="http://schemas.xmlsoap.org/wsdl/soap/"
 xmlns:tns
="http://garfield/"
 xmlns:xsd
="http://www.w3.org/2001/XMLSchema"
 xmlns
="http://schemas.xmlsoap.org/wsdl/"
 targetNamespace
="http://garfield/"
 name
="MyJ6WebServiceService"
>
<
types
>
<
xsd:schema
>
  
<
xsd:import 
namespace
="http://garfield/"
 schemaLocation
="http://localhost:8030/garfield.MyJ6WebService?xsd=1"
 
/> 
  
</
xsd:schema
>
  
</
types
>
<
message 
name
="SayHello"
>
  
<
part 
name
="parameters"
 element
="tns:SayHello"
 
/> 
  
</
message
>
<
message 
name
="SayHelloResponse"
>
  
<
part 
name
="parameters"
 element
="tns:SayHelloResponse"
 
/> 
  
</
message
>
<
portType 
name
="MyJ6WebService"
>
<
operation 
name
="SayHello"
>
  
<
input 
wsam:Action
="http://garfield/MyJ6WebService/SayHelloRequest"
 message
="tns:SayHello"
 
/> 
  
<
output 
wsam:Action
="http://garfield/MyJ6WebService/SayHelloResponse"
 message
="tns:SayHelloResponse"
 
/> 
  
</
operation
>
  
</
portType
>
<
binding 
name
="MyJ6WebServicePortBinding"
 type
="tns:MyJ6WebService"
>
  
<
soap:binding 
transport
="http://schemas.xmlsoap.org/soap/http"
 style
="document"
 
/> 
<
operation 
name
="SayHello"
>
  
<
soap:operation 
soapAction
=""
 
/> 
<
input
>
  
<
soap:body 
use
="literal"
 
/> 
  
</
input
>
<
output
>
  
<
soap:body 
use
="literal"
 
/> 
  
</
output
>
  
</
operation
>
  
</
binding
>
<
service 
name
="MyJ6WebServiceService"
>
<
port 
name
="MyJ6WebServicePort"
 binding
="tns:MyJ6WebServicePortBinding"
>
  
<
soap:address 
location
="http://localhost:8030/garfield.MyJ6WebService"
 
/> 
  
</
port
>
  
</
service
>
  
</
definitions
>

 

 

在WebService启动的状态下,在命令行中输入:

 

E:\Temp>wsimport -p garfield.garfieldj6wsclient -keep http://localhost:8030/garf
ield.MyJ6WebService?wsdl
parsing WSDL...
generating code...
compiling code...
E:\Temp>

注意,一定要对应你发布的WebService信息!

 

然后系统会自动生成相关的接口文件,如下:

 

新建Java工程,将输出文件引入,然后建立测试类:

 

package xxh;
import garfield.garfieldj6wsclient.*;
public 
class WebClient {
        
/**
  
         * 
@param
 args  
         
*/  
        
public 
static 
void main(String[] args) {   
             
//
创建一个客户端服务对象 
            MyJ6WebService myJ6WS = 
new MyJ6WebServiceService().getMyJ6WebServicePort(); 
            
//
调用服务方法,并得到方法返回值 
            String strTest = myJ6WS.sayHello("Garfield"); 
            
//
打印服务的返回值 
            System.out.println(strTest); 
        }   
}

 

 在WebService运行情况下,运行客户端测试程序,输出:

Hello ,Garfield!

 

 

转载地址:http://ydbzl.baihongyu.com/

你可能感兴趣的文章
nginx配置让任何文件在浏览器中显示文本text/plain
查看>>
思科路由器×××配置-- 动态 site-to-site ×××(上)
查看>>
Visual Studio统计有效代码行数
查看>>
Qt连接Oracle数据库常见问题
查看>>
45个实用的JavaScript技巧、窍门和最佳实践
查看>>
sqlserver 2005 列字符串拼接
查看>>
用面向接口编程思想看找对象
查看>>
TWaver GIS在电信中的使用
查看>>
MySQL5.7使用Notifier启动、停止服务时出现的问题
查看>>
今天用java弄个json数据交换接口,个人感觉这样实现省事实力。
查看>>
5 Servlet
查看>>
百度创始人李彦宏:要做最好的中文搜索引擎
查看>>
3.26作业
查看>>
Python里的append和extend
查看>>
cut命令
查看>>
JavaScript强化教程-cookie对象
查看>>
MEMCACHE常用的命令
查看>>
docker 基础
查看>>
Angular基础(七) HTTP & Routing
查看>>
使用Freeline提高你的工作效率
查看>>