Hi Liav,
I just noticed in your original email that you have the HTTP Marshaler under
http-consumer-su/src/main/resources. This is incorrect. It should be under
http-consumer-su/src/main/java. Only configurations files maiy be under
src/main/resources. All code in Maven compliant projects should be under
src/main/java.
This should hopefully solve the problem.
If it does not due to other unresolved dependencies, the more suitable way
would be to download servicemix 3.3.x.x source code and do a maven build of
the common/servicemix-components directory which contains an HTTP Marshaler
exactly as you need with resolved dependencies. This will load the
common/servicemix-components into the Maven repository.
Now add the following dependency into your application POM file.
<dependency>
<groupId>org.apache.servicemix</groupId>
<artifactId>servicemix-core</artifactId>
<version>3.3.x.x</version>
</dependency>
This should take care of the problem for you.
Cheers,
Ashwin...
Liav Ezer wrote:
>
> Hi Ashwin,
>
> I'm pretty new to ESB, could you please guide me through your
> recomendations?
>
> How do i build my Marshaler class? Is it by a Maven command? or with
> eclipce?
>
> How do i load it to my Maven repository?
>
> Can you give an example of a depedency which adds a Maven coordinate of a
> built class?
>
> Here is a reference of my SA build warning & Deployment error:
>
> Build warning after performing "mvn install" in my root directory:
>
> [WARNING] Failed to generate jbi.xml:
> org.apache.servicemix.maven.plugin.jbi.JbiPluginException: Unable to
> generate service unit descriptor!
> org.apache.servicemix.maven.plugin.jbi.JbiPluginException: Unable to
> generate service unit descriptor!
> ...
> Caused by: org.springframework.beans.factory.BeanDefinitionStoreException:
> Failed to load type: org.apache.servicemix.jbi.HTTPMarshaler. Reason:
> java.lang.ClassNotFoundException:
>
> Deployment Error after hot deply of my SA jar:
>
> <loc-message>
> org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
> Configuration problem: Bean class
> [org.apache.servicemix.jbi.HTTPMarshaler] not found
>
> Please advise.
>
> Thanks.
>
>
>
>
> Ashwin Karpe wrote:
>>
>> Hi Liav,
>>
>> Looks like this is a case of the marshaler code not being on your
>> classpath. Can you build the SMX source code directory in which this
>> class is found and load it into your Maven repository and then add the
>> Maven coordinate in your POM file as a dependency.
>>
>> That should take care of the problem.
>>
>> Cheers,
>>
>> Ashwin...
>>
>>
>> Liav Ezer wrote:
>>>
>>> Hi,
>>>
>>> My Project consist of 3 SU which one of them is a servicemix-http
>>> consumer with an HTTPMarshaler bean
>>> & two more simple http providers.
>>>
>>> My Marshaler class is located in:
>>> "http-consumer-su\src\main\resources\org\apache\servicemix\jbi\HTTPMarshaler.java"
>>>
>>>
>>> My consumer xbean is as follows:
>>>
>>> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>>> xmlns:replaceMe="http://servicemix.apache.org/replaceMe"
>>> xmlns="http://www.springframework.org/schema/beans"
>>> xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://servicemix.apache.org/http/1.0
>>> http://servicemix.apache.org/schema/servicemix-http-3.2.2.xsd
>>> http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
>>>
>>> <http:consumer service="GenericProxyImplService"
>>> endpoint="GenericProxyImpl"
>>>
>>> locationURI="http://localhost:8080/GenericProxyService/services/GenericProxyImpl"
>>>
>>> role="consumer"
>>> defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>>> targetService="wsn:RouterBuilderSvc"
>>> marshaler="#marshaler"
>>> soap="true" />
>>> <bean id="marshaler" class="org.apache.servicemix.jbi.HTTPMarshaler"
>>> />
>>> </beans>
>>>
>>> I have the following problem reported by the servicemix console after
>>> dropping the SA's jar to the hotdeploy directory:
>>>
>>> ERROR - AutoDeploymentService - Failed to update Service
>>> Assembly: http-receiver-sa
>>> java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?>
>>> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message"
>>> version="1.0">
>>> <jbi-task-result>
>>> <frmwk-task-result>
>>> <frmwk-task-result-details>
>>> <task-result-details>
>>> <task-id>deploy</task-id>
>>> <task-result>FAILED</task-result>
>>> <message-type>ERROR</message-type>
>>> </task-result-details>
>>> </frmwk-task-result-details>
>>> </frmwk-task-result>
>>> <component-task-result
>>> xmlns="http://java.sun.com/xml/ns/jbi/management-message">
>>> <component-name>servicemix-http</component-name>
>>> <component-task-result-details>
>>> <task-result-details>
>>> <task-id>deploy</task-id>
>>> <task-result>FAILED</task-result>
>>> <message-type>ERROR</message-type>
>>> <task-status-msg>
>>> <msg-loc-info>
>>> <loc-token/>
>>> <loc-message>Could not deploy xbean service unit</loc-message>
>>> </msg-loc-info>
>>> </task-status-msg>
>>> <exception-info>
>>> <nesting-level>1</nesting-level>
>>> <msg-loc-info>
>>> <loc-token/>
>>>
>>> <loc-message>org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
>>> Configuration problem: Bean class [org.apache.service
>>> mix.jbi.HTTPMarshaler] not found
>>> Offending resource: file
>>> [C:\iona\fuse-esb-3.3.1.3\data\smx\service-assemblies\http-receiver-sa\version_3\sus\servicemix-http\http-consumer-su\xbean.xml]
>>> Bean 'marshaler'; nested exception is java.lang.ClassNotFoundException:
>>> org.apache.servicemix.jbi.HTTPMarshaler in classloader
>>> org.apache.servicemix.jbi.HTTPMarshaler</loc-message>
>>>
>>>
>>> <stack-trace><![CDATA[org.apache.xbean.kernel.ServiceRegistrationException:
>>> org.springframework.beans.factory.parsing.BeanDefinitionParsingE
>>> xception: Configuration problem: Bean class
>>> [org.apache.servicemix.jbi.HTTPMarshaler] not found
>>> Offending resource: file
>>> [C:\iona\fuse-esb-3.3.1.3\data\smx\service-assemblies\http-receiver-sa\version_3\sus\servicemix-http\http-consumer-su\xbean.xml]
>>>
>>> Bean 'marshaler'; nested exception is java.lang.ClassNotFoundException:
>>> org.apache.servicemix.jbi.HTTPMarshaler in classloader
>>> org.apache.servicemix.jbi.HTTPMarshaler
>>> at
>>> org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService(ServiceManagerRegistry.java:424)
>>>
>>> at
>>> org.apache.xbean.kernel.standard.StandardKernel.registerService(StandardKernel.java:220)
>>>
>>> at
>>> org.apache.xbean.server.spring.loader.SpringLoader.load(SpringLoader.java:152)
>>>
>>> at
>>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:83)
>>>
>>> at
>>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
>>>
>>> at
>>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:353)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:256)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:664)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:628)
>>>
>>> at java.util.TimerThread.mainLoop(Timer.java:512)
>>> at java.util.TimerThread.run(Timer.java:462)
>>> Caused by:
>>> org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
>>> Configuration problem: Bean class
>>> [org.apache.servicemix.jbi.HTTPMarshaler] not found
>>> Offending resource: file
>>> [C:\iona\fuse-esb-3.3.1.3\data\smx\service-assemblies\http-receiver-sa\version_3\sus\servicemix-http\http-consumer-su\xbean.xml]
>>>
>>> Bean 'marshaler'; nested exception is java.lang.ClassNotFoundException:
>>> org.apache.servicemix.jbi.HTTPMarshaler in classloader
>>> org.apache.servicemix.jbi.HTTPMarshaler
>>> at
>>> org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
>>>
>>> at
>>> org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
>>>
>>> at
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:268)
>>>
>>> at
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:502)
>>>
>>> at
>>> org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.parseBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:62)
>>>
>>> at
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:341)
>>>
>>> at
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:310)
>>>
>>> at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.processBeanDefinition(XBeanBeanDefinitionDocumentReader.java:174)
>>>
>>> at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseDefaultElement(XBeanBeanDefinitionDocumentReader.java:101)
>>>
>>> at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:81)
>>>
>>> at
>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
>>>
>>> at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
>>>
>>> at
>>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
>>>
>>> at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
>>>
>>> at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
>>>
>>> at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
>>>
>>> at
>>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
>>>
>>> at
>>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
>>>
>>> at
>>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:173)
>>>
>>> at
>>> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:112)
>>>
>>> at
>>> org.apache.xbean.spring.context.FileSystemXmlApplicationContext.loadBeanDefinitions(FileSystemXmlApplicationContext.java:168)
>>>
>>> at
>>> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
>>>
>>> at
>>> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:389)
>>>
>>> at
>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
>>>
>>> at
>>> org.apache.xbean.server.spring.configuration.SpringConfiguration.<init>(SpringConfiguration.java:63)
>>>
>>> at
>>> org.apache.xbean.server.spring.configuration.SpringConfigurationServiceFactory.createService(SpringConfigurationServiceFactory.java:106)
>>>
>>> at
>>> org.apache.xbean.kernel.standard.ServiceManager.start(ServiceManager.java:420)
>>>
>>> at
>>> org.apache.xbean.kernel.standard.ServiceManager.initialize(ServiceManager.java:200)
>>>
>>> at
>>> org.apache.xbean.kernel.standard.RegistryFutureTask$RegisterCallable.call(RegistryFutureTask.java:110)
>>>
>>> at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
>>> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
>>> at
>>> org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService(ServiceManagerRegistry.java:409)
>>>
>>> ... 13 more
>>> Caused by: java.lang.ClassNotFoundException:
>>> org.apache.servicemix.jbi.HTTPMarshaler in classloader
>>> org.apache.servicemix.jbi.HTTPMarshaler
>>> at
>>> org.apache.xbean.classloader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:206)
>>>
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at
>>> org.springframework.util.ClassUtils.forName(ClassUtils.java:201)
>>> at
>>> org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:93)
>>>
>>> at
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:405)
>>>
>>> ... 41 more
>>> ]]></stack-trace>
>>> </msg-loc-info>
>>> </exception-info>
>>> </task-result-details>
>>> </component-task-result-details>
>>> </component-task-result>
>>> <component-task-result
>>> xmlns="http://java.sun.com/xml/ns/jbi/management-message">
>>> <component-name>servicemix-http</component-name>
>>> <component-task-result-details>
>>> <task-result-details>
>>> <task-id>deploy</task-id>
>>> <task-result>SUCCESS</task-result>
>>> </task-result-details>
>>> </component-task-result-details>
>>> </component-task-result>
>>> <component-task-result
>>> xmlns="http://java.sun.com/xml/ns/jbi/management-message">
>>> <component-name>servicemix-http</component-name>
>>> <component-task-result-details>
>>> <task-result-details>
>>> <task-id>deploy</task-id>
>>> <task-result>SUCCESS</task-result>
>>> </task-result-details>
>>> </component-task-result-details>
>>> </component-task-result>
>>> </jbi-task-result>
>>> </jbi-task>
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:125)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:111)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:543)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:353)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:256)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:664)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:628)
>>>
>>> at java.util.TimerThread.mainLoop(Timer.java:512)
>>> at java.util.TimerThread.run(Timer.java:462)
>>> DEBUG - SedaFlow - Called Flow resume
>>> DEBUG - JMSFlow - Called Flow resume
>>> DEBUG - JCAFlow - Called Flow resume
>>> WARN - AutoDeploymentService - Directory: hotdeploy: Automatic
>>> install of
>>> C:\iona\fuse-esb-3.3.1.3\hotdeploy\http-receiver-sa-1.0-SNAPSHOT.jar
>>> failed
>>> javax.jbi.management.DeploymentException: Failed to update Service
>>> Assembly: http-receiver-sa
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:368)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:256)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:664)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
>>>
>>> at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:628)
>>>
>>> at java.util.TimerThread.mainLoop(Timer.java:512)
>>> at java.util.TimerThread.run(Timer.java:462)
>>> Caused by: java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?>
>>> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message"
>>> version="1.0">
>>> <jbi-task-result>
>>> <frmwk-task-result>
>>> <frmwk-task-result-details>
>>> <task-result-details>
>>> <task-id>deploy</task-id>
>>> <task-result>FAILED</task-result>
>>> <message-type>ERROR</message-type>
>>> </task-result-details>
>>> </frmwk-task-result-details>
>>> </frmwk-task-result>
>>> <component-task-result
>>> xmlns="http://java.sun.com/xml/ns/jbi/management-message">
>>> <component-name>servicemix-http</component-name>
>>> <component-task-result-details>
>>> <task-result-details>
>>> <task-id>deploy</task-id>
>>> <task-result>FAILED</task-result>
>>> <message-type>ERROR</message-type>
>>> <task-status-msg>
>>> <msg-loc-info>
>>> <loc-token/>
>>> <loc-message>Could not deploy xbean service unit</loc-message>
>>> </msg-loc-info>
>>> </task-status-msg>
>>> <exception-info>
>>> <nesting-level>1</nesting-level>
>>> <msg-loc-info>
>>> <loc-token/>
>>>
>>> <loc-message>org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
>>> Configuration problem: Bean class [org.apache.service
>>> mix.jbi.HTTPMarshaler] not found
>>> Offending resource: file
>>> [C:\iona\fuse-esb-3.3.1.3\data\smx\service-assemblies\http-receiver-sa\version_3\sus\servicemix-http\http-consumer-su\xbean.xml]
>>>
>>> Bean 'marshaler'; nested exception is java.lang.ClassNotFoundException:
>>> org.apache.servicemix.jbi.HTTPMarshaler in classloader
>>> org.apache.servicemix.jbi.HTTPMarshaler</loc-message>
>>>
>>> Thanks.
>>>
>>
>>
>
>
-----
---
Ashwin Karpe, Principal Consultant, PS - Opensource Center of Competence
Progress Software Corporation
14 Oak Park Drive
Bedford, MA 01730
---
+1-972-304-9084 (Office)
+1-972-971-1700 (Mobile)
----
Blog: http://opensourceknowledge.blogspot.com/
--
View this message in context:
http://www.nabble.com/Need-help-to-use-Marshaler-class-for-http-soap-consumer-bc-tp21265430p21292668.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.