疯狂
STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
JAX-WS weService实例 c/s形式
Posted on 2010-01-13 23:22
疯狂
阅读(2489)
评论(0)
编辑
收藏
所属分类:
webservice
Java SE 6封装了JAX-WS(Java API for XML-Web Services),而JAX-WS同时支持基于SOAP的Web服务和REST风格的Web服务,以下是个人写的一个实例:
首先是服务端:
首先创建java项目或者web项目都可;
首先编写service端接口,WebServerInterface(必须已接口形式发布)
@WebService(serviceName
=
"
testserver
"
,targetNamespace
=
"
http://testserver.com
"
)
@SOAPBinding(style
=
SOAPBinding.Style.RPC)
public
interface
WebServerInterface
{
@WebMethod
public
TestUser getAllTestUsersByUserName(String userName);
}
TestUser.java
package
com.server;
public
class
TestUser
{
private
int
id;
private
String usetName;
private
String pwd;
public
int
getId()
{
return
id;
}
public
void
setId(
int
id)
{
this
.id
=
id;
}
public
String getUsetName()
{
return
usetName;
}
public
void
setUsetName(String usetName)
{
this
.usetName
=
usetName;
}
public
String getPwd()
{
return
pwd;
}
public
void
setPwd(String pwd)
{
this
.pwd
=
pwd;
}
}
实现类:
@WebService(endpointInterface
=
"
com.server.WebServerInterface
"
)
public
class
WebServerInterfaceImpl
implements
WebServerInterface
{
@Override
public
TestUser getAllTestUsersByUserName(String userName)
{
//
TODO Auto-generated method stub
return
TestUserManager.getUserByName(userName);
}
}
接下来是TestUserManager.java(用户管理类)
public
class
TestUserManager
{
public
static
List
<
TestUser
>
users;
static
{
users
=
new
ArrayList
<
TestUser
>
();
for
(
int
i
=
0
;i
<=
10
;i
++
)
{
TestUser testUser
=
new
TestUser();
testUser.setId(i);
testUser.setUsetName(
"
userName_
"
+
i);
testUser.setPwd(
"
pwd_
"
+
i);
users.add(testUser);
}
}
public
static
TestUser getUserByName(String userName)
{
for
(TestUser testUser:users)
{
if
(testUser.getUsetName().equals(userName))
{
return
testUser;
}
}
return
null
;
}
}
这样server就编写好了 然后就是发布server:当然如果是web项目的话可以通过servlet发布 当然要设置:
load-on-startup
为1 在tomcat启动时初始化发布
public
static
void
main(String[] args)
{
Endpoint.publish(
"
http://127.0.0.1:10100/mywebserver
"
,
new
WebServerInterfaceImpl());
}
运行后webserver就发布好了 可以同ie访问
接下来是客户端的访问:
客户端可以同eclipse通过wsdl的url来自动生成
也可以自己实现
例如:
URL url = new URL("http://127.0.0.1:10100/mywebserver?wsdl");
QName qname = new QName("
http://service.myweb/","TimeServerImplService
"); 其中第一个参数为:namespaceURI 第二个为localPart
Service service = Service.create(url, qname);
WebServerInterface = service.getPort(WebServerInterface .class);
然后就可以操作了
代码下载:
/Files/freeman1984/src_server.rar
/Files/freeman1984/src_client.rar
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
我应该采用哪一种 WSDL 样式?(转载)
webservice b/s (jax-ws 2.1)
xmlrpc介绍和使用
axis客户端简单实现
spring cxf
JAX-WS weService实例2
PHPRPC
JAX-WS weService实例 c/s形式
axis webService发布webservice和client的简单实现
Powered by:
BlogJava
Copyright © 疯狂
日历
<
2010年1月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
公告
公众号:
QQjava交流群:
51374316
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
all 生活杂谈(16)
android(18)
apache项目(20)
chart(1)
concurrent(5)
database(70)
dwr(3)
flex(6)
hibernate(25)
java (135)
javafx(2)
javascript
java安全(8)
java性能(19)
jbpm(1)
jquery(4)
linux(17)
lucene(1)
netty(3)
nginx(1)
others(2)
questions(31)
questions_hander(28)
spring(32)
struts(9)
swing
UML(2)
unix(13)
web(45)
webservice(9)
xml(5)
敏捷(6)
方法论(28)
架构(21)
测试(1)
缓存
网络通讯(9)
读代码(6)
项目管理(19)
相册
我的相册
搜索
积分与排名
积分 - 2834714
排名 - 2
最新随笔
1. 后续内容请移步公众号“duomi88”
2. Netty百万级推送服务(转)
3. Netty 概述(转)
4. Netty优雅退出机制和原理(转)
5. 使用JavaMail SearchTerm 收取邮件
6. JAVA Thread Dump 分析综述
7. oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题
8. FTP主动模式和被动模式的比较(转载)
9. 关于java RMI在多网卡下(或者启动360,百度,腾讯等wifi共享下)无法连接问题(java.rmi.ConnectException: Connection refused to host: xx)
10. (转)Oracle数据库如何授权收费(Database Licensing)
11. 成功的 Web 应用系统性能测试 (转载)
12. It is indirectly referenced from required .class file异常
13. (转)svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
14. automation服务器不能创建对象 解决办法
15. ERROR: transport error 202: gethostbyname: unknown host 解决办法
16. JavaScript 跨浏览器事件处理(转)
17. 函数声明 VS 函数表达式(转)
18. ORA-06548错误
19. 项目规划与管理记录2
20. tmpFile.renameTo(classFile) failed
21. redhat6.4 64位安装rlwrap
22. ora-01031:insufficient privileges
23. mysql远程连接问题 Access denied for user 'root'@' ip ' (using password: YES)
24. dbcp重连(转)
25. 解决Vmware Workstation上安装Linux系统不能SSH远程连接的问题
26. URL最大长度限制(转)
27. 用MyEclipse测试发送email时报java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
28. 我应该采用哪一种 WSDL 样式?(转载)
29. linux 挂载ntfs usb 出现mount: unknown filesystem type 'ntfs'
30. 11g oracle 用户密码过期问题
最新评论
1. re: Oracle物化视图创建全过程(转)
评论内容较长,点击标题查看
--ya
2. re: Oracle物化视图创建全过程(转)
评论内容较长,点击标题查看
--ya
3. re: 11g oracle 用户密码过期问题
问问
--是是是
4. re: mysql远程连接问题 Access denied for user 'root'@' ip ' (using password: YES)
asdfsadf
--asdf
5. re: struts(il8n)实现国际化的一个例子
在啥地方
--正常