Hi Freeman,
After following your advice, I got this far.
Here is the exception thrown during deployment of my sa:
Caused by: org.apache.cxf.endpoint.EndpointException
at
org.apache.cxf.endpoint.EndpointImpl.createBinding(EndpointImpl.java:132)
at org.apache.cxf.endpoint.EndpointImpl.<init>(EndpointImpl.java:81)
at
org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:402)
... 13 more
Caused by: org.apache.cxf.BusException: No binding factory for namespace
http://schemas.sun.com/jbi/wsdl-extensions/jms/ registered.
at
org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(BindingFactoryManagerImpl.java:91)
at
org.apache.cxf.endpoint.EndpointImpl.createBinding(EndpointImpl.java:129)
... 15 more
Here is the content of my wsdl
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="isJMSConsumer" targetNamespace="http://services.is"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://services.is"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:jms="http://schemas.sun.com/jbi/wsdl-extensions/jms/">
<types/>
<message name="isJMSConsumerOperationRequest">
<part name="part1" type="xsd:base64Binary"/>
</message>
<portType name="isJMSConsumerPortType">
<operation name="isJMSConsumerOperation">
<input name="input1"
message="tns:isJMSConsumerOperationRequest"/>
</operation>
</portType>
<binding name="isJMSConsumerBinding" type="tns:isJMSConsumerPortType">
<jms:binding/>
<operation name="isJMSConsumerOperation">
<jms:operation destination="Queue/A" destinationType="Queue"/>
<input name="input1">
<jms:message messageType="BytesMessage" bytesPart="part1"
forwardAsAttachment="true"/>
</input>
</operation>
</binding>
<service name="isJMSConsumerService">
<port name="isJMSConsumerPort" binding="tns:isJMSConsumerBinding">
<jms:address connectionURL="mq://localhost:7676"/>
</port>
</service>
<plnk:partnerLinkType name="isJMSConsumer">
<plnk:role name="isJMSConsumerPortTypeRole"
portType="tns:isJMSConsumerPortType"/>
</plnk:partnerLinkType>
</definitions>
and here is my xbean.xml
<beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:is="http://services.is">
<!-- wsdlResource="classpath:isFileConsumer.wsdl" -->
<cxfbc:consumer wsdl="classpath:isJMSConsumer.wsdl"
service="is:isJMSConsumerService"
targetService="is:isFTPWriter"
mtomEnabled="true"/>
</beans>
thanks.
Freeman Fang wrote:
>
> Hi,
>
> If you want to send attachment over soap with jms transport, could you
> consider to use the cxf bc component with mtom over jms transport?
> Freeman
>
> On 2009-8-3, at 下午8:02, lekkie wrote:
>
>>
>>
>> Hi Guys,
>>
>> While trying to create a WSDL for my consumer JMS BC on servicemix I
>> got the
>> following error
>>
>> <loc-message>WSDL is not WS-I BP compliant: [binding
>> "{http://services.is}isJMSFileConsumerInBinding" : Basic Profile
>> Violation
>> #R2401: A wsdl:binding element in a DESCRIPTION MUST use WSDL SOAP
>> Binding
>> as defined in WSDL 1.1 Section 3.]</loc-message>
>> <stack-trace><![CDATA[javax.jbi.management.DeploymentException: WSDL
>> is not
>> WS-I BP compliant: [binding "{http://
>> services.is}isJMSFileConsumerInBinding"
>> : Basic Profile Violation #R2401: A wsdl:binding element in a
>> DESCRIPTION
>> MUST use WSDL SOAP Binding as defined in WSDL 1.1 Section 3.]
>>
>> at
>> org
>> .apache
>> .servicemix
>> .jms
>> .endpoints
>> .JmsSoapConsumerEndpoint.validateWsdl1(JmsSoapConsumerEndpoint.java:
>> 198)
>>
>> at
>> org
>> .apache
>> .servicemix
>> .jms
>> .endpoints
>> .JmsSoapConsumerEndpoint.validate(JmsSoapConsumerEndpoint.java:138)
>>
>> While the exception is in itself self explanatory, I ws wondering
>> what the
>> best way it is to generate a WSDL.
>>
>> Here is the WSDL I generated from Netbeans wizard:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <definitions name="isJMSFileConsumer" targetNamespace="http://services.is
>> "
>> xmlns="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:tns="http://services.is"
>> xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
>> xmlns:jms="http://schemas.sun.com/jbi/wsdl-extensions/jms/">
>> <types/>
>> <message name="isJMSFileConsumerInOperationRequest">
>> <part name="part1" type="xsd:base64Binary"/>
>> </message>
>> <portType name="isJMSFileConsumerInPortType">
>> <operation name="isJMSFileConsumerInOperation">
>> <input name="input1"
>> message="tns:isJMSFileConsumerInOperationRequest"/>
>> </operation>
>> </portType>
>> <binding name="isJMSFileConsumerInBinding"
>> type="tns:isJMSFileConsumerInPortType">
>> <jms:binding/>
>> <operation name="isJMSFileConsumerInOperation">
>> <jms:operation destination="DefaultQueue"
>> destinationType="Queue"/>
>> <input name="input1">
>> <jms:message messageType="BytesMessage"
>> bytesPart="part1"/>
>> </input>
>> </operation>
>> </binding>
>> <service name="isJMSFileConsumerIn">
>> <port name="isJMSFileConsumerInPortType"
>> binding="tns:isJMSFileConsumerInBinding">
>> <jms:address connectionURL="mq://localhost:61616"/>
>> </port>
>> </service>
>> <plnk:partnerLinkType name="isJMSFileConsumer">
>> <!-- A partner link type is automatically generated when a
>> new port
>> type is added. Partner link types are used by BPEL processes.
>> In a BPEL process, a partner link represents the interaction between
>> the
>> BPEL process and a partner service. Each partner link is associated
>> with a
>> partner link type.
>> A partner link type characterizes the conversational relationship
>> between
>> two services. The partner link type can have one or two roles.-->
>> <plnk:role name="isJMSFileConsumerInPortTypeRole"
>> portType="tns:isJMSFileConsumerInPortType"/>
>> </plnk:partnerLinkType>
>> </definitions>
>>
>>
>>
>> And here is the xbean.xml for this service unit
>>
>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>> xmlns:is="http://services.is"
>> xmlns:amqpool="http://jencks.org/amqpool/2.0">
>>
>>
>> <classpath>
>> <location>.</location>
>> </classpath>
>>
>> <bean id="connectionFactory"
>> class="org.apache.activemq.pool.PooledConnectionFactory">
>>
>> <property name="connectionFactory">
>> <bean
>> class="org.apache.activemq.ActiveMQConnectionFactory">
>> <property name="brokerURL" value="tcp://localhost:
>> 61616" />
>> </bean>
>> </property>
>>
>> <!--Configure maximum connections used by the pool -->
>> <property name="maxConnections" value="10" />
>>
>> <!--Configure maximum sessions per connection -->
>> <property name="maximumActive" value="10" />
>> </bean>
>>
>> <!-- add the sender endpoint here -->
>> <bean id="myMarshaler"
>> class="org.apache.servicemix.components.util.BinaryFileMarshaler"/>
>>
>> <jms:soap-consumer service="is:isJMSFileConsumer"
>> endpoint="isJMSFileConsumer"
>> wsdl="classpath:isJMSFileConsumer.wsdl"
>> validateWsdl="true"
>> targetService="is:isFTPWriter"
>> destinationName="queue/A/Soap"
>> connectionFactory="#connectionFactory"/>
>> </beans>
>>
>> What is the best way to generate a WSDL for a binary message
>> (attachment)
>> through JMS BC over SOAP?
>>
>> kr.
>> --
>> View this message in context:
>> http://www.nabble.com/Binary-Message-WSDL-for-JMS-BC-%28Consumer%29-tp24789561p24789561.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>
>
--
View this message in context:
http://www.nabble.com/Binary-Message-WSDL-for-JMS-BC-%28Consumer%29-tp24789561p24807302.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.