问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

调用webservice接口参数可以传入实体类吗

发布网友 发布时间:2022-05-02 08:32

我来回答

1个回答

热心网友 时间:2023-10-13 23:23

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["userPassword"].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
Content-Length: length SOAPAction: "http://tempuri.org/AddUser"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AddUser xmlns="http://tempuri.org/">
<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
String endpoint = "http://localhost:20576/OperationAD.asmx?wsdl";
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");
*/
// 设置要调用的方法
call.setOperationName(new QName("http://tempuri.org/","AddUser"));
//该方法需要的参数
call.addParameter(new QName("http://tempuri.org/","ldapDN"),
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);

//此处缺少一个实体类参数[java中有个UsersInfo.class实体类]
/**call.addParameter(new QName("http://tempuri.org/","user"),
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));
call.addParameter(new QName("http://tempuri.org/","group"),
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);*/
call.addParameter(new QName("http://tempuri.org/","path"),
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/","name"),
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/","pwd"),
org.apache.axis.Constants.XSD_STRING,
ParameterMode.IN);

call.setReturnClass(UsersInfo.class);
// 方法的返回值类型
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/AddUser");
// 调用该方法,
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());
}

}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
古剑奇谭2运行错误黑屏白屏花屏了怎么办?介绍_古剑奇谭2运行错误黑屏... 古剑奇谭修改器常见问题解答 谁能给我做个PSP GT赛车中文版的金手指代码文件啊 PSP GT 赛车我下了在PSP里面也能用?怎么弄无限钱啊 TVB新五虎谁最受欢迎 陈键锋的人气如何 射阳油烟机清理服务点 女士众生相txt全集下载 哪两种食物吃完能迅速增高? pp勺子能用多久 web service 参数 限制字符长度? webservice 可以传递哪些类型的参数 如何在调用WebService方法时,传递对象数组参数 为什么web service不支持同名不同参数的方法? Java调用Webservice数组参数传递有问题 调用webservice时怎么向webservice接口传参数 .net webservice方法参数问题 WebService一般是如何传递参数以及返回值的? webservice接口的参数应该如何定义 如何修改 webservice里面的参数 经济合作联社签订合同需不需要通过村民代表大会或村民大会决定? 工伤有绩效工资吗 农村信用社办理普惠卡查征信吗 农村信用社可以办征信吗 上了银行征信可以在农村信用社贷款吗? 微博关注别人时发的私信怎么设置? 就是我一关注他时,他的私信立马就过来了… 微博一关注别人,就会发来私信,这个怎么弄啊。 国寿福禄两全保险分红型 国寿福禄双喜两全保险分红型怎么理赔 国寿福禄双喜两全保险分红型保重大疾病吗 webservice接口怎么将XML作为参数传递 怎么测试webservice传参数 波浪理论相较于道氏理论的优势是什么? 怎么看道氏理论和波浪理论 道氏理论与波浪理论有什么异同? 波浪理论、江恩理论、道氏理论都是what?急、急 江恩理论与道氏理论,波浪理论有什么不同 股市成交量怎么算 股票中的成交量是怎样计算的 请问怎么算上证A股的每日总成交金额和各股一日成交金额? A股的成交量是如何计算的,单位是元还是手? 中国A股的成交量是单边计算还是双边计算?? 三年级下册三新一点通 四年级上册三新一点通 四年级上册语文三新一点通第六单元内容是什么? 巜三新一点通》上的万籁俱寂是什么解释 专注与全面发展作文开头结尾 跪求2019MBA,MPA,MPAcc联考与经济类联考1000题一点通 电子书版 佳能5d mark ii手动对焦怎么没锁住对焦点didid的声音 关于写专注作文的开头段