我创建了一个java spring maven应用程序,其中包含一个C#WCF服务作为Web服务客户端。为了能够在我的代码中访问wcf方法,问题是wcf服务包含一个方法名称为postLeadsTest(PostLeadsLeadRequestXML doc,userID);我以这种方式称呼这种方法
LMSLeadLocator lms=new LMSLeadLocator();
ILead llms =lms.getBasicHttpBinding_ILead();
llms.intiallizeconnection("SparkLMS");
Object los;
PostLeadsLeadRequestXML leadRequestXML = (PostLeadsLeadRequestXML)doc;
llms.postLeads(leadRequestXML, userID)
在那段时间我得到了一个例外
HTTP状态500 - 请求处理失败;嵌套异常是 java.lang.ClassCastException: org.apache.xerces.dom.DeferredDocumentImpl无法强制转换为 org.tempuri.PostLeadsLeadRequestXML
请帮助解决此问题,然后PostLeadsLeadRequestXML类包含此代码
/**
* PostLeadsLeadRequestXML.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
*/
package org.tempuri;
public class PostLeadsLeadRequestXML implements java.io.Serializable, org.apache.axis.encoding.AnyContentType, org.apache.axis.encoding.MixedContentType {
private org.apache.axis.message.MessageElement [] _any;
public PostLeadsLeadRequestXML() {
}
public PostLeadsLeadRequestXML(
org.apache.axis.message.MessageElement [] _any) {
this._any = _any;
}
/**
* Gets the _any value for this PostLeadsLeadRequestXML.
*
* @return _any
*/
public org.apache.axis.message.MessageElement [] get_any() {
return _any;
}
/**
* Sets the _any value for this PostLeadsLeadRequestXML.
*
* @param _any
*/
public void set_any(org.apache.axis.message.MessageElement [] _any) {
this._any = _any;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof PostLeadsLeadRequestXML)) return false;
PostLeadsLeadRequestXML other = (PostLeadsLeadRequestXML) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this._any==null && other.get_any()==null) ||
(this._any!=null &&
java.util.Arrays.equals(this._any, other.get_any())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (get_any() != null) {
for (int i=0;
i<java.lang.reflect.Array.getLength(get_any());
i++) {
java.lang.Object obj = java.lang.reflect.Array.get(get_any(), i);
if (obj != null &&
!obj.getClass().isArray()) {
_hashCode += obj.hashCode();
}
}
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(PostLeadsLeadRequestXML.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("http://tempuri.org/", ">>PostLeads>leadRequestXML"));
}
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}
注意:此自动生成的Web服务客户端代码