-
1. Re: Camel Rest binding JSON
mageshbk Sep 28, 2012 2:29 AM (in response to anikulin)We have not completely tested the JSON provider compatibility and usage. Hence it has not been enabled in SwitchYard configuration. The error message indicates that there is no Provider implemnetation in the classpath. Although you can add it in the module definition, it may not work properly. I have created this JIRA for adding JSON support. Meanwhile, you can try our RESTEasy binding that comes with default support for JSON.
-
2. Re: Camel Rest binding JSON
anikulin Sep 28, 2012 3:03 PM (in response to mageshbk)And could I make some transformer which will transform data from JSON to XML and insert it in SwitchYard?
-
3. Re: Camel Rest binding JSON
kcbabo Sep 28, 2012 3:16 PM (in response to anikulin)Are you using something specific in the Camel CXF component that would prevent you from using the RESTEasy gateway? In that case, you can use JSON straight away and you don't have to convert to XML at all.
-
4. Re: Camel Rest binding JSON
anikulin Sep 28, 2012 3:21 PM (in response to kcbabo)I tried to use RESTeasy binding, but had some issues with this and used Camel CXF. OK, if RESTeasy can use JSON, i'd try to integrate it once more. Thanks.
-
5. Re: Camel Rest binding JSON
kcbabo Sep 28, 2012 3:31 PM (in response to anikulin)If you run into issues using the RESTEasy binding then we definitely want to hear about them. :-)
-
6. Re: Camel Rest binding JSON
anikulin Sep 30, 2012 10:46 PM (in response to kcbabo)When I'm trying to deploy rest-binding example, in console i can see smth like that:
05:43:18,206 INFO [org.switchyard.common.camel.SwitchYardCamelContext] (MSC service thread 1-7) Route: direct:{urn:switchyard-quickstart:resteasy-binding:1.0}Warehouse started and consuming from: Endpoint[direct://%7Burn:switchyard-quickstart:resteasy-binding:1.0%7DWarehouse]
05:43:18,429 INFO [org.switchyard.common.camel.SwitchYardCamelContext] (MSC service thread 1-7) Route: direct:{urn:switchyard-quickstart:resteasy-binding:1.0}OrderService started and consuming from: Endpoint[direct://%7Burn:switchyard-quickstart:resteasy-binding:1.0%7DOrderService]
05:43:18,555 INFO [org.switchyard.common.camel.SwitchYardCamelContext] (MSC service thread 1-7) Route: direct:{urn:switchyard-quickstart:resteasy-binding:1.0}WarehouseService started and consuming from: Endpoint[direct://%7Burn:switchyard-quickstart:resteasy-binding:1.0%7DWarehouseService
However, when I try to run test using mvn exec:java -Dexec.args="new" as in reedme said, i have
<html><head><title>JBoss Web/7.0.13.Final - Error report</title><style><!--H1 {f
ont-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-siz
e:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#5
25D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;backg
round-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;c
olor:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color
:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;backgro
und:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}H
R {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - /rest-binding
/order</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>
message</b> <u>/rest-binding/order</u></p><p><b>description</b> <u>The requested
resource (/rest-binding/order) is not available.</u></p><HR size="1" noshade="n
oshade"><h3>JBoss Web/7.0.13.Final</h3></body></html>
instead of <order><orderId>1</orderId></order>.
-
7. Re: Camel Rest binding JSON
mageshbk Oct 1, 2012 7:53 AM (in response to anikulin)Could you attach the complete log of this deployment? My guess is that the RESTEasy component has not been enabled. A snapshot of your standlone.xml or the config that you have started up, could also help.
-
8. Re: Camel Rest binding JSON
anikulin Oct 1, 2012 8:45 AM (in response to mageshbk)Yes, you're right. I didn't have properly configured RESTeasy component.
Thanks a lot. -
9. Re: Camel Rest binding JSON
anikulin Oct 2, 2012 7:03 PM (in response to mageshbk)I successfully integrated with RESTeasy component, but now I have another problem.
Please, can you help me with it?I still want to receive data in REST binding through JSON. I have such POJO JAXB annotation class:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "item")
public class Item {
@XmlElement(name = "itemId")
private Integer itemId;
@XmlElement(name = "name")
private String name;
public Item() {
}
public Item(Integer itemId, String name) {
itemId = itemId;
name = name;
}
public Integer getItemId() {
return itemId;
}
public void setItemId(Integer itemId) {
itemId = itemId;
}
public String getName() {
return name;
}
public void setName(String name) {
name = name;
}
}
and such JAX-RS annotated interface
@Path("/order")public interface OrderResource {
@POST
@Path("/")
public void getOrder(Item item);
}
But when I deploy this app to AS7 and try to send
{
"item": {"itemId":"1",
"name": "Hydrogen Atom"
}
}
I have such exception:
02:01:58,015 WARN [org.jboss.resteasy.core.SynchronousDispatcher] (http-localhost-127.0.0.1-8080-1) Failed executing POST /order/: org.jboss.resteasy.plugins.providers.jaxb.JAXBUnmarshalException: javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException: Content is not allowed in prolog.]
at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.readFrom(AbstractJAXBProvider.java:125) [resteasy-jaxb-provider-2.3.2.Final.jar:]
at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:105) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.read(GZIPDecodingInterceptor.java:61) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:108) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:169) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:124) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:147) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.2.Final.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
Caused by: javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException: Content is not allowed in prolog.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:314) [jboss-jaxb-api_2.2_spec-1.0.3.Final.jar:1.0.3.Final]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:526) [jaxb-impl-2.2.4.jar:2.2.4]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:223) [jaxb-impl-2.2.4.jar:2.2.4]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:189) [jaxb-impl-2.2.4.jar:2.2.4]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:136) [jboss-jaxb-api_2.2_spec-1.0.3.Final.jar:1.0.3.Final]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:104) [jboss-jaxb-api_2.2_spec-1.0.3.Final.jar:1.0.3.Final]
at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.readFrom(AbstractJAXBProvider.java:121) [resteasy-jaxb-provider-2.3.2.Final.jar:]
... 28 more
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:196) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:175) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:394) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:322) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:281) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.impl.XMLScanner.reportFatalError(XMLScanner.java:1459) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(XMLDocumentScannerImpl.java:870) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:845) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1196) [xercesImpl-2.9.1-jbossas-1.jar:]
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:555) [xercesImpl-2.9.1-jbossas-1.jar:]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:217) [jaxb-impl-2.2.4.jar:2.2.4]
... 32 more
However when I send the dame message in XML format, everything is OK.
Thanks
-
10. Re: Camel Rest binding JSON
mageshbk Oct 2, 2012 11:17 PM (in response to anikulin)You can use @Consumes and @Produces annotations. You can declare it at class level or fine tune at method level
@Consumes("application/json") @Produces("application/json")
-
11. Re: Camel Rest binding JSON
anikulin Oct 7, 2012 4:48 PM (in response to mageshbk)Thanks a lot for help.
Unfortunatelly I have once more issue. I have Date field in POJO file and want it to be deserialized with my class. I added such annotations
@JsonProperty
@JsonDeserialize(using = JsonDateDeserializer.class)
@XmlElement(name = "expiration")
and created appropriate class:
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;
public class JsonDateDeserializer extends JsonDeserializer<Date> {
@Override
public Date deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String date = jp.getText();
try {
return format.parse(date);
} catch (ParseException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
However when I try to deploy it on server I have such exception:
23:40:22,855 WARN [org.jboss.modules] (MSC service thread 1-5) Failed to define class com.magick.trade_service.service.transformer.JsonDateDeserializer in Module "deployment.tradeservice.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/magick/trade_service/service/transformer/JsonDateDeserializer (Module "deployment.tradeservice.jar:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)
at org.jboss.modules.Module.loadModuleClass(Module.java:517)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:98) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:77) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:123) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
Caused by: java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonDeserializer
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_30]
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [rt.jar:1.6.0_30]
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [rt.jar:1.6.0_30]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [rt.jar:1.6.0_30]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
... 21 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.map.JsonDeserializer from [Module "deployment.tradeservice.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 27 more
23:40:22,901 INFO [org.jboss.weld.ClassLoading] (MSC service thread 1-5) WELD-000119 Not generating any bean definitions from com.magick.trade_service.service.transformer.JsonDateDeserializer because of underlying class loading error
23:40:22,904 INFO [org.jboss.weld.ClassLoading] (MSC service thread 1-5) catching: org.jboss.weld.resources.spi.ResourceLoadingException: java.lang.ClassNotFoundException: com.magick.trade_service.service.transformer.JsonDateDeserializer from [Module "deployment.tradeservice.jar:main" from Service Module Loader]
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:74) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:98) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:77) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:123) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
Caused by: java.lang.ClassNotFoundException: com.magick.trade_service.service.transformer.JsonDateDeserializer from [Module "deployment.tradeservice.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
... 12 more
23:40:22,938 WARN [org.jboss.modules] (MSC service thread 1-5) Failed to define class com.magick.trade_service.service.transformer.JsonDateSerializer in Module "deployment.tradeservice.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/magick/trade_service/service/transformer/JsonDateSerializer (Module "deployment.tradeservice.jar:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)
at org.jboss.modules.Module.loadModuleClass(Module.java:517)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:98) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:77) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:123) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
Caused by: java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonSerializer
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_30]
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [rt.jar:1.6.0_30]
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [rt.jar:1.6.0_30]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [rt.jar:1.6.0_30]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
... 21 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.map.JsonSerializer from [Module "deployment.tradeservice.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 27 more
23:40:22,997 INFO [org.jboss.weld.ClassLoading] (MSC service thread 1-5) WELD-000119 Not generating any bean definitions from com.magick.trade_service.service.transformer.JsonDateSerializer because of underlying class loading error
23:40:22,999 INFO [org.jboss.weld.ClassLoading] (MSC service thread 1-5) catching: org.jboss.weld.resources.spi.ResourceLoadingException: java.lang.ClassNotFoundException: com.magick.trade_service.service.transformer.JsonDateSerializer from [Module "deployment.tradeservice.jar:main" from Service Module Loader]
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:74) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:98) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:77) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:123) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) [weld-core-1.1.6.Final.jar:2012-03-21 18:52]
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
Caused by: java.lang.ClassNotFoundException: com.magick.trade_service.service.transformer.JsonDateSerializer from [Module "deployment.tradeservice.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
... 12 more
Server has module with JsonSerializer class.
Thanks, -
12. Re: Camel Rest binding JSON
mageshbk Oct 9, 2012 2:34 AM (in response to anikulin)I have created this JIRA to fix this issue. Meanwhile, you can manually add the module dependency to org/switchyard/component/resteasy/main/module.xml
<module xmlns="urn:jboss:module:1.0" name="org.switchyard.component.resteasy"> <resources> <resource-root path="switchyard-component-resteasy-0.6.0-SNAPSHOT.jar"/> </resources> <dependencies> <module name="javax.api"/> ... <module name="org.jboss.resteasy.resteasy-jackson-provider"/> <module name="org.codehaus.jackson.jackson-mapper-asl"/> ... </dependencies> </module>
-
13. Re: Camel Rest binding JSON
mageshbk Oct 9, 2012 2:42 AM (in response to mageshbk)You could also try this syntax that would automatically export the dependencies from that module
<module name="org.jboss.resteasy.resteasy-jackson-provider" export="true"/>
-
14. Re: Camel Rest binding JSON
mageshbk Oct 9, 2012 2:44 AM (in response to anikulin)Anton,
Could you also mark the posts that helped you, so that other community members can benefit from the same?