CXF多次调用异常

fangpengyu 2017-03-16 12:20:14
求助,CXF多次调用异常,分不多了,全部就这么点分了,先上代码:
package com.rpsoft.cxfdemo.common;

import java.util.ArrayList;
import java.util.List;

import javax.xml.namespace.QName;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

import com.rpsoft.cxfdemo.service.DeptTrigerServiceImpl;
import com.rpsoft.cxfdemo.service.UserTrigerServiceImpl;

public class CxfUtil {

public static String getCxfData(String url,String method, List<Object> parameter) {
try {
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
Client client = factory.createClient(url);
QName qname = new QName("http://webservice.orguser.rpkj.com/", method);
Object[] parameters = parameter.toArray();
Object[] objects;

objects = client.invoke(qname, parameters);
return objects[0].toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}

}


public static void main(String[] args){

List<Object> parameterUser=new ArrayList<Object>();
parameterUser.add("");
parameterUser.add("");
parameterUser.add("");
parameterUser.add("488801");
parameterUser.add("");
parameterUser.add("");
parameterUser.add("");
parameterUser.add("");
parameterUser.add("");
parameterUser.add("");
parameterUser.add(0);

//1.第一次调用getCxfData
String resultUser=getCxfData("http://192.168.25.92:8081/ServiceBus/webService/userService?wsdl","getUserList",parameterUser);//正式地址
System.out.println("正式环境用户信息="+resultUser);

List<Object> parameterOrganization=new ArrayList();
parameterOrganization.add("");
parameterOrganization.add("488801");
parameterOrganization.add("");
parameterOrganization.add("");
parameterOrganization.add("");
parameterOrganization.add("");
parameterOrganization.add("");
parameterOrganization.add(0);

//2.第二次调用getCxfData
String resultOrganization=getCxfData("http://192.168.25.92:8081/ServiceBus/webService/orgService?wsdl","getUnitList",parameterOrganization);//正式地址
System.out.println("正式环境组织机构="+resultOrganization);



}

}


现在出现的问题时,第一次调用getCxfData方法正常,第二次调用抛异常,我有尝试过先调用第二次的,反正就是第一个调用的正常,第二个异常,如果每次只调用某一个,都没有问题,异常截图如下:


异常文件如下:

三月 16, 2017 11:18:42 上午 org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames
信息: Created classes: com.rpkj.orguser.webservice.GetCjrInfo, com.rpkj.orguser.webservice.GetCjrInfoResponse, com.rpkj.orguser.webservice.GetRoleNumberList, com.rpkj.orguser.webservice.GetRoleNumberListResponse, com.rpkj.orguser.webservice.GetUppAuthor, com.rpkj.orguser.webservice.GetUppAuthorResponse, com.rpkj.orguser.webservice.GetUserList, com.rpkj.orguser.webservice.GetUserListResponse, com.rpkj.orguser.webservice.ObjectFactory, com.rpkj.orguser.webservice.ReceiveUserRoles, com.rpkj.orguser.webservice.ReceiveUserRolesResponse
正式环境用户信息={"header":{"success":"true","errorcode":"0"},"pageInfo":{"currentPage":1,"totalPage":6,"totalResult":584},"data":[{"name":"test","age":30}]}
三月 16, 2017 11:18:45 上午 org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames
信息: Created classes: com.rpkj.orguser.webservice.GetUnitList, com.rpkj.orguser.webservice.GetUnitListResponse, com.rpkj.orguser.webservice.ObjectFactory
三月 16, 2017 11:18:45 上午 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
警告: Interceptor for {http://webservice.orguser.rpkj.com/}org#{http://webservice.orguser.rpkj.com/}getUnitList has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Marshalling Error: com.rpkj.orguser.webservice.GetUnitList is not known to this context
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:266)
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:237)
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:122)
at org.apache.cxf.wsdl.interceptors.BareOutInterceptor.handleMessage(BareOutInterceptor.java:69)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299)
at com.rpsoft.cxfdemo.common.CxfUtil.getCxfData(CxfUtil.java:25)
at com.rpsoft.cxfdemo.service.DeptTrigerServiceImpl.service(DeptTrigerServiceImpl.java:75)
at com.rpsoft.cxfdemo.service.DeptTrigerServiceImpl.triger(DeptTrigerServiceImpl.java:38)
at com.rpsoft.cxfdemo.common.CxfUtil.main(CxfUtil.java:68)
Caused by: javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.internal.SAXException2: com.rpkj.orguser.webservice.GetUnitList is not known to this context
javax.xml.bind.JAXBException: com.rpkj.orguser.webservice.GetUnitList is not known to this context]
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:311)
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:236)
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:95)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:617)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:241)
... 13 more

...全文
274 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Surin被占用了 2018-06-19
  • 打赏
  • 举报
回复
同一方法内不能多次调用,你重置下上下文
fangpengyu 2017-03-16
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
应该是com.rpkj.orguser.webservice.GetUnitList 的属性字段有问题。。。。
没问题啊,我可以先调组织结构的代码,结果是好的
李德胜1995 2017-03-16
  • 打赏
  • 举报
回复
应该是com.rpkj.orguser.webservice.GetUnitList 的属性字段有问题。。。。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧