qname webservice 参数(如何在客户端控制webservice调用的timeout)

本文目录
如何在客户端控制webservice调用的timeout
1,在CXF生成的stub的客户端,方式如下(CXF2.1.1):
SimpleServiceService srv = new SimpleServiceService();
SimpleService servicePort = srv.getSimpleServicePort();
//timeout setting
Client cl = ClientProxy.getClient(servicePort);
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
servicePort.concatenate("111", "2222");
其中SimpleServiceService是自动生成的stub类.
2,在Xfire生成的stub的客户端,方式如下(Xfire1.26):
SimpleServiceServiceClient serviceClient= new SimpleServiceServiceClient();
SimpleService servicePort = serviceClient.getSimpleServicePort();
HttpClientParams params = new HttpClientParams();
params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE, Boolean.FALSE);
// set connection timeout
params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, 2L);
//set response timeout
params.setIntParameter(HttpClientParams.SO_TIMEOUT,2);
Client client = Client.getInstance(servicePort);
client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS, params);
System.out.println(servicePort.concatenate("xfire1", "xfire2"));
其中SimpleServiceServiceClient 是自动生成的stub类.
***隐藏网址***
***隐藏网址***
URL wsdlURL = new URL("file:///D:/JAVAWorkspace/Repository/prjCXFWS/src/wsdl/prjCXFWS.wsdl");
QName serviceQName = new QName("test.cxfws.com/", "SimpleServiceService");
QName portQName = new QName("test.cxfws.com/", "SimpleServicePort");
Service service = Service.create(wsdlURL, serviceQName);
//set handler
service.setHandlerResolver(new RequestOrderHandlerResolver());
SimpleService port = (SimpleService) service.getPort(portQName, SimpleService.class);
//timeout setting
Client cl = ClientProxy.getClient(port);
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
System.out.println(port.concatenate("srt1", "srt2"));
4,jax-Dispatch,在网上搜索到有人说用以下方式:试了一下不好用.
dispatch.getRequestContext().put("com.sun.xml.ws.request.timeout", 1000);
调用webservice接口参数可以传入实体类吗
java调用.net写的webservice 传入实体类作为参数
/// 《summary》
/// 添加windows用户
/// 《/summary》
/// 《param name="ldapDN"》单元名称《/param》
/// 《param name="user"》用户对象《/param》
/// 《param name="group"》所属组《/param》
/// 《param name="de"》连接对象《/param》
public static string AddUser(string ldapDN, UsersInfo user, string group, string path, string name, string pwd)
{
DirectoryEntry de = GetFirectoryObject(path, name, pwd); //连接
DirectoryEntry subEntry = de.Children.Find("CN=" + ldapDN); //查找User单元
DirectoryEntry NewUser = subEntry.Children.Add("cn=" + user.UserPrincipalName, "user");
SetProperty(NewUser, "Description", user.Description);//描述
SetProperty(NewUser, "sn", user.SN); //姓
SetProperty(NewUser, "employeeID", user.EmployeeID);
SetProperty(NewUser, "givenname", user.GivenName); //名
SetProperty(NewUser, "initials", user.Initials); //英文缩写
SetProperty(NewUser, "displayName", user.displayName); //显示名称
SetProperty(NewUser, "physicalDeliveryOfficeName", user.PhysicalDeliveryOfficeName); //办公室地址
SetProperty(NewUser, "telephoneNumber", user.telephoneNumber); //办公室电话
SetProperty(NewUser, "otherTelephone", user.otherTelephone); //其他电话
SetProperty(NewUser, "C", user.C); //国家/地区
SetProperty(NewUser, "St", user.St); //省/自治区
SetProperty(NewUser, "L", user.L); //市/县
SetProperty(NewUser, "streetAddress", user.StreetAddress); //街道
SetProperty(NewUser, "postOfficeBox", user.PostOfficeBox); //邮政信箱
SetProperty(NewUser, "postalCode", user.PostalCode); //邮政编码
SetProperty(NewUser, "userPrincipalName", user.UserPrincipalName); //用户登录名
// SetProperty(NewUser, "logonHours",DateTime.Now.ToString()); //登录时间
SetProperty(NewUser, "accountExpires", user.AccountExpires); //账户过期
SetProperty(NewUser, "mail", user.Mail); //寻呼机
SetProperty(NewUser, "Pager", user.Pager); //寻呼机
SetProperty(NewUser, "mobile", user.Mobile); //移动电话
SetProperty(NewUser, "FacsimileTelephoneNumber", user.FacsimileTelephoneNumber); //传真
SetProperty(NewUser, "ipPhone", user.IpPhone); //IP电话
SetProperty(NewUser, "wWWHomePage", user.WWWHomePage); //网页
SetProperty(NewUser, "Info", user.Info); //注释
SetProperty(NewUser, "Title", user.Title); //职务
SetProperty(NewUser, "Department", user.Department); //部门
SetProperty(NewUser, "Company", user.Company); //公司
SetProperty(NewUser, "sAMAccountName", user.sAMAccountName); //登录名称曾用名
NewUser.CommitChanges();
NewUser.Properties.Add(user.UserPassWord);
NewUser.CommitChanges();
NewUser.Invoke("SetPassword", new object { user.UserPassWord });
NewUser.CommitChanges();
AddGroupUser(group, user.UserPrincipalName, de); //将用户添加到组
EnableAccount(NewUser);
return "已将用户" + ldapDN + "添加到组";
}
以下是服务端xml
POST /OperationAD.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
***隐藏网址***
《?xml version="1.0" encoding="utf-8"?》
***隐藏网址***
《soap:Body》
***隐藏网址***
《ldapDN》string《/ldapDN》
《user》
《EmployeeID》string《/EmployeeID》
《Description》string《/Description》
《SN》string《/SN》
《GivenName》string《/GivenName》
《Initials》string《/Initials》
《displayName》string《/displayName》
《PhysicalDeliveryOfficeName》string《/PhysicalDeliveryOfficeName》
《telephoneNumber》string《/telephoneNumber》
《otherTelephone》string《/otherTelephone》
《C》string《/C》
《St》string《/St》
《L》string《/L》
《StreetAddress》string《/StreetAddress》
《PostOfficeBox》string《/PostOfficeBox》
《PostalCode》string《/PostalCode》
《UserPrincipalName》string《/UserPrincipalName》
《sAMAccountName》string《/sAMAccountName》
《UserPassWord》string《/UserPassWord》
《Pager》string《/Pager》
《Mobile》string《/Mobile》
《Mail》string《/Mail》
《FacsimileTelephoneNumber》string《/FacsimileTelephoneNumber》
《IpPhone》string《/IpPhone》
《Info》string《/Info》
《WWWHomePage》string《/WWWHomePage》
《AccountExpires》string《/AccountExpires》
《Title》string《/Title》
《Department》string《/Department》
《Company》string《/Company》
《/user》
《group》string《/group》
《path》string《/path》
《name》string《/name》
《pwd》string《/pwd》
《/AddUser》
《/soap:Body》
《/soap:Envelope》
java 客户端测试代码
package webservice;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
public class TestAxisClient {
public static void main(String args) {
// TODO Auto-generated method stub
try {
// webserviceURL
***隐藏网址***
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
/**
QName qn = new QName("user");
call.registerTypeMapping(UsersInfo.class, qn,
new BeanSerializerFactory(UsersInfo.class, qn)
, new BeanDeserializerFactory(UsersInfo.class, qn));
注册 bean
UsersInfo user = new UsersInfo();
user.C="sda";
user.Company="xiaosdfna";
user.Info="sdfajsodfji";
user.setInfo("sdafsdf");
*/
// 设置要调用的方法
***隐藏网址***
//该方法需要的参数
***隐藏网址***
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);
//此处缺少一个实体类参数
***隐藏网址***
org.apache.axis.Constants.XSD_STRING,UsersInfo.class,
ParameterMode.IN);
call.registerTypeMapping(UsersInfo.class,qx,new BeanSerializerFactory(UsersInfo.class, qx),new BeanDeserializerFactory(UsersInfo.class, qx));
***隐藏网址***
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);*/
***隐藏网址***
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);
***隐藏网址***
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);
***隐藏网址***
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);
call.setReturnClass(UsersInfo.class);
// 方法的返回值类型
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
call.setUseSOAPAction(true);
***隐藏网址***
// 调用该方法,
String ret = (String)call.invoke(new Object { "22",user,"23","22","12","23"});
System.out.println("Successful = " + ret);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40





