Ich bin nicht in der Lage, eine Nachricht mithilfe einer Transform-Nachricht zu transformieren. Meine Eingabe ist ein Java-Objekt, das nach wsdl ist und die Ausgabe ist application/xml.Nicht in der Lage, eine Nachricht in Mule mithilfe der TransformMessage-Komponente zu transformieren
Der Antrag ist Gegenstand ist von der Form:
/**
* PackagingRequest.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
*/
package packaging;
public class PackagingRequest implements java.io.Serializable {
private java.lang.String packagingProduct;
private java.lang.String packagingID;
private java.lang.String packagingRequiredDate;
public PackagingRequest() {
}
public PackagingRequest(
java.lang.String packagingProduct,
java.lang.String packagingID,
java.lang.String packagingRequiredDate) {
this.packagingProduct = packagingProduct;
this.packagingID = packagingID;
this.packagingRequiredDate = packagingRequiredDate;
}
/**
* Gets the packagingProduct value for this PackagingRequest.
*
* @return packagingProduct
*/
public java.lang.String getPackagingProduct() {
return packagingProduct;
}
/**
* Sets the packagingProduct value for this PackagingRequest.
*
* @param packagingProduct
*/
public void setPackagingProduct(java.lang.String packagingProduct) {
this.packagingProduct = packagingProduct;
}
/**
* Gets the packagingID value for this PackagingRequest.
*
* @return packagingID
*/
public java.lang.String getPackagingID() {
return packagingID;
}
/**
* Sets the packagingID value for this PackagingRequest.
*
* @param packagingID
*/
public void setPackagingID(java.lang.String packagingID) {
this.packagingID = packagingID;
}
/**
* Gets the packagingRequiredDate value for this PackagingRequest.
*
* @return packagingRequiredDate
*/
public java.lang.String getPackagingRequiredDate() {
return packagingRequiredDate;
}
/**
* Sets the packagingRequiredDate value for this PackagingRequest.
*
* @param packagingRequiredDate
*/
public void setPackagingRequiredDate(java.lang.String packagingRequiredDate) {
this.packagingRequiredDate = packagingRequiredDate;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof PackagingRequest)) return false;
PackagingRequest other = (PackagingRequest) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.packagingProduct==null && other.getPackagingProduct()==null) ||
(this.packagingProduct!=null &&
this.packagingProduct.equals(other.getPackagingProduct()))) &&
((this.packagingID==null && other.getPackagingID()==null) ||
(this.packagingID!=null &&
this.packagingID.equals(other.getPackagingID()))) &&
((this.packagingRequiredDate==null && other.getPackagingRequiredDate()==null) ||
(this.packagingRequiredDate!=null &&
this.packagingRequiredDate.equals(other.getPackagingRequiredDate())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getPackagingProduct() != null) {
_hashCode += getPackagingProduct().hashCode();
}
if (getPackagingID() != null) {
_hashCode += getPackagingID().hashCode();
}
if (getPackagingRequiredDate() != null) {
_hashCode += getPackagingRequiredDate().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(PackagingRequest.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("http://www.example.org/Packaging/", "PackagingRequest"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("packagingProduct");
elemField.setXmlName(new javax.xml.namespace.QName("", "PackagingProduct"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("packagingID");
elemField.setXmlName(new javax.xml.namespace.QName("", "PackagingID"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("packagingRequiredDate");
elemField.setXmlName(new javax.xml.namespace.QName("", "PackagingRequiredDate"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
}
/**
* 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);
}
}
und mein Maultier Fluss ist wie unter:
<mule xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:ws="http://www.mulesoft.org/schema/mule/ws" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ws http://www.mulesoft.org/schema/mule/ws/current/mule-ws.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd">
<ws:consumer-config name="Web_Service_Consumer" wsdlLocation="wsdl/PackagingSOAP.wsdl" service="Packaging" port="PackagingSOAP" serviceAddress="http://localhost:8080/PackagingProject/services/PackagingSOAP" doc:name="Web Service Consumer"/>
<flow name="testing_enricher_webserviceFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/testingenricher" doc:name="HTTP"/>
<logger message="Welcome to the enricher flow.....a packaging service will be called now , " level="INFO" doc:name="Logger"/>
<component class="testingmulefacets.PackagingList" doc:name="Java"/>
<custom-transformer mimeType="application/xml" class="testingmulefacets.TransformList" doc:name="Java"/>
<logger message="payload before transform #[payload]" level="INFO" doc:name="Logger"/>
<dw:transform-message metadata:id="4a89ba40-6031-4bd8-a515-e09b03a9a1b7" doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/xml
%namespace ns0 http://www.example.org/Packaging/
---
{
ns0#PackagingType: {
PackagingProduct: payload.packagingProduct,
PackagingID: payload.packagingID
,
PackagingRequiredDate: payload.packagingRequiredDate
}
}]]></dw:set-payload>
</dw:transform-message>
<logger message="payload after transform #[payload]" level="INFO" doc:name="Logger"/>
<ws:consumer config-ref="Web_Service_Consumer" operation="NewOperation" doc:name="Web Service Consumer"/>
</flow>
</mule>
Während ich dies tun, ich einen Fehler als unerwartetes Zeichen ‚p‘ erhalten (Code 112) in Prolog; erwartet '<' auf [Zeile, Spalte {unknown-source}]: [1,1] (com.ctc.wstx.exc.WstxUnexpectedCharException)
Und ich merke die Ausgabe der Nachricht com.mulesoft-Transformation. [email protected] und kein XML wie erwartet, aber die Eingabe ist korrekt RequestPackaging Object.
Kann mir bitte jemand helfen?
Danke Charu für Ihre Antwort aus. Ich versuchte, meinen Ansatz zu ändern, um xml mit dem JAXB-Transformer zu senden. Ich bin erfolgreich in der Xml, aber dann bekomme ich einen Fehler als '*********************************** *********************************************** Stammausnahme Stack-Ablaufverfolgung : org.mule.module.ws.consumer.SoapFaultException: Keine solche Operation 'PackagingRequest'. Message-Payload ist vom Typ: ElementNSImpl' Ich habe die Operation zu "NewOperation" im Web-Service-Consumer hinzugefügt, aber ich weiß nicht, warum sie nach der Packaging-Anfrage sucht. PS: Der externe Web-Service funktioniert gut getestet durch SOAPUI. –