package com.lxt008.ws;
import java.net.MalformedURLException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import javax.xml.namespace.QName;
import org.codehaus.xfire.XFireRuntimeException;
import org.codehaus.xfire.aegis.AegisBindingProvider;
import org.codehaus.xfire.annotations.AnnotationServiceFactory;
import org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.jaxb2.JaxbTypeRegistry;
import org.codehaus.xfire.service.Endpoint;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.soap.AbstractSoapBinding;
import org.codehaus.xfire.transport.TransportManager;
import com.lxt008.entity.ArrayOfUser;
import com.lxt008.entity.User;
public class HelloClient {
private static XFireProxyFactory proxyFactory = new XFireProxyFactory();
private HashMap endpoints = new HashMap();
private Service service0;
public HelloClient() {
create0();
Endpoint HelloHttpPortEP = service0 .addEndpoint(new QName("http://ws.lxt008.com", "HelloHttpPort"), new QName("http://ws.lxt008.com", "HelloHttpBinding"), "http://localhost:8080/WSListDemo/services/Hello");
endpoints.put(new QName("http://ws.lxt008.com", "HelloHttpPort"), HelloHttpPortEP);
Endpoint HelloPortTypeLocalEndpointEP = service0 .addEndpoint(new QName("http://ws.lxt008.com", "HelloPortTypeLocalEndpoint"), new QName("http://ws.lxt008.com", "HelloPortTypeLocalBinding"), "xfire.local://Hello");
endpoints.put(new QName("http://ws.lxt008.com", "HelloPortTypeLocalEndpoint"), HelloPortTypeLocalEndpointEP);
}
public Object getEndpoint(Endpoint endpoint) {
try {
return proxyFactory.create((endpoint).getBinding(), (endpoint).getUrl());
} catch (MalformedURLException e) {
throw new XFireRuntimeException("Invalid URL", e);
}
}
public Object getEndpoint(QName name) {
Endpoint endpoint = ((Endpoint) endpoints.get((name)));
if ((endpoint) == null) {
throw new IllegalStateException("No such endpoint!");
}
return getEndpoint((endpoint));
}
public Collection getEndpoints() {
return endpoints.values();
}
private void create0() {
TransportManager tm = (org.codehaus.xfire.XFireFactory.newInstance().getXFire().getTransportManager());
HashMap props = new HashMap();
props.put("annotations.allow.interface", true);
AnnotationServiceFactory asf = new AnnotationServiceFactory(new Jsr181WebAnnotations(), tm, new AegisBindingProvider(new JaxbTypeRegistry()));
asf.setBindingCreationEnabled(false);
service0 = asf.create((com.lxt008.ws.HelloPortType.class), props);
{
AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://ws.lxt008.com", "HelloPortTypeLocalBinding"), "urn:xfire:transport:local");
}
{
AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://ws.lxt008.com", "HelloHttpBinding"), "http://schemas.xmlsoap.org/soap/http");
}
}
public HelloPortType getHelloHttpPort() {
return ((HelloPortType)(this).getEndpoint(new QName("http://ws.lxt008.com", "HelloHttpPort")));
}
public HelloPortType getHelloHttpPort(String url) {
HelloPortType var = getHelloHttpPort();
org.codehaus.xfire.client.Client.getInstance(var).setUrl(url);
return var;
}
public HelloPortType getHelloPortTypeLocalEndpoint() {
return ((HelloPortType)(this).getEndpoint(new QName("http://ws.lxt008.com", "HelloPortTypeLocalEndpoint")));
}
public HelloPortType getHelloPortTypeLocalEndpoint(String url) {
HelloPortType var = getHelloPortTypeLocalEndpoint();
org.codehaus.xfire.client.Client.getInstance(var).setUrl(url);
return var;
}
public static void main(String[] args) {
HelloClient client = new HelloClient();
//create a default service endpoint
HelloPortType service = client.getHelloHttpPort();
ArrayOfUser userList=service.m(1);
Iterator it=userList.getUser().iterator();
while(it.hasNext())
{
User user=(User)it.next();
System.out.println(user.getUsername().getValue());
}
System.out.println("test client completed");
System.exit(0);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
WebService传递对象与集合问题.rar
共64个文件
java:22个
class:22个
xml:8个
5星 · 超过95%的资源 需积分: 50 66 下载量 110 浏览量
2011-04-02
23:40:51
上传
评论
收藏 38KB RAR 举报
温馨提示
WebService传递对象与集合问题.rarWebService传递对象与集合问题.rarWebService传递对象与集合问题.rar
资源推荐
资源详情
资源评论
收起资源包目录
WebService传递对象与集合问题.rar (64个子文件)
WSClient
.project 1KB
.settings
com.genuitec.eclipse.ws.xfire.prefs 145B
.mymetadata 297B
WebRoot
WEB-INF
web.xml 712B
lib
classes
META-INF
xfire
services.xml 104B
com
lxt008
ws
ObjectFactory.class 646B
MResponse.class 952B
M.class 896B
HelloPortType.class 707B
HelloClient.class 6KB
package-info.class 319B
entity
User.class 1KB
ObjectFactory.class 1KB
ArrayOfUser.class 974B
package-info.class 327B
index.jsp 834B
META-INF
MANIFEST.MF 39B
.myeclipse
src
com
lxt008
ws
HelloPortType.java 667B
ObjectFactory.java 1KB
M.java 1KB
package-info.java 166B
HelloClient.java 5KB
MResponse.java 2KB
entity
ObjectFactory.java 2KB
ArrayOfUser.java 2KB
User.java 2KB
package-info.java 174B
WebServices
services.xml 104B
.classpath 645B
WSListDemo
.project 1KB
.settings
com.genuitec.eclipse.ws.xfire.prefs 145B
.mymetadata 303B
WebRoot
WEB-INF
web.xml 712B
lib
classes
META-INF
xfire
services.xml 359B
com
lxt008
ws
ObjectFactory.class 646B
IHello.aegis.xml 300B
MResponse.class 952B
M.class 896B
HelloImpl.class 1KB
HelloPortType.class 707B
HelloClient.class 5KB
package-info.class 319B
IHello.class 245B
entity
User.class 535B
ObjectFactory.class 1KB
ArrayOfUser.class 974B
package-info.class 327B
index.jsp 834B
META-INF
MANIFEST.MF 39B
.myeclipse
src
com
lxt008
ws
HelloPortType.java 667B
ObjectFactory.java 1KB
IHello.aegis.xml 300B
M.java 1KB
package-info.java 166B
HelloImpl.java 603B
IHello.java 159B
HelloClient.java 4KB
MResponse.java 2KB
entity
ObjectFactory.java 2KB
ArrayOfUser.java 2KB
User.java 221B
package-info.java 174B
WebServices
services.xml 359B
.classpath 645B
共 64 条
- 1
AHKO983626
- 粉丝: 0
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 花数据集+数据集汇总+标签txt+数据集汇总代码+迁移学习最佳模型+全部迭代最佳模型
- 20240329224412.zip
- switch.docx `switch`语句是C++中的一种流程控制语句,通常用于根据表达式的值选择执行不同的代码块 下面是`
- python绘制直方图-02-进程之间不共享全局变量.ev4.rar
- python绘制直方图-01-第三天知识点回顾.ev4.rar
- 01背包问题动态规划.docx
- 表达式求值.docx表达式求值涉及许多不同的情况和方法,具体取决于表达式的形式和要求的精度 下面是一个简单的例子
- python绘制直方图-08-软件的卸载.ev4.rar
- tcp和udp的区别.docx
- 斐波那契数列c.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页