Classloading issues in JBossESB
ckirkendall Feb 12, 2008 5:16 PMI am having an issue getting my custom actions to be found in JBoss4.2 when deploying an custom ESB.
The structure of the esb archive is as follows.
-com |-sei |-jboss |-esb |-actions |-Service1.java -META-INF |-jboss-esb.xml |-deployment.xml -processDefinition |-processdefinition.xml -jbmq-queue-service.xml
I can't for the life of me understand how the following error is even possible given the current structure. Any Help would be apriciated
java.lang.ClassNotFoundException: com.sei.esb.jboss.actions.Service1
Below is my jboss-esb.xml
<?xml version="1.0" encoding="UTF-8"?> <jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5"> <providers> <jms-provider name="JBossMQ" connection-factory="ConnectionFactory" jndi-URL="jnp://127.0.0.1:1099" jndi-context-factory="org.jnp.interfaces.NamingContextFactory" jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces"> <jms-bus busid="deployGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/test_bpm_deploy_Request_gw" /> </jms-bus> <jms-bus busid="deployEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/test_bpm_deploy_Request_esb" /> </jms-bus> <jms-bus busid="startGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/test_start_gw" /> <!-- quickstart_bpm_orchestration2_start_Request_gw --> <!-- DVDStore_Orders --> <!-- Petstore_Orders --> </jms-bus> <jms-bus busid="startEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/test_start_esb" /> </jms-bus> <jms-bus busid="service1EsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/test_service1_esb" /> </jms-bus> <jms-bus busid="service2EsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/test_service2_esb" /> </jms-bus> <jms-bus busid="resultsService"> <jms-message-filter dest-type="QUEUE" dest-name="queue/test_results_esb" /> </jms-bus> </jms-provider> </providers> <services> <service category="SEI_BPM_Deploy_Service" name="Deploy_Service" description="SEI JBoss Test BPM Example: use this service to deploy the process"> <listeners> <jms-listener name="JMS-Gateway" busidref="deployGwChannel" maxThreads="1" is-gateway="true" /> <jms-listener name="ESB-Listener" busidref="deployEsbChannel" maxThreads="1"/> </listeners> <actions> <action name="DeployFromFile" class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor"> <property name="command" value="DeployProcessDefinition" /> <property name="process-definition-file" value="/processDefinition/processdefinition.xml" /> </action> <action name="deployed-message" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="message" value="Process Definition Deployed" /> </action> </actions> </service> <service category="SEI_BPM_Starter_Service" name="Starter_Service" description="SEI JBoss Test BPM Example: Use this service to start a process instance"> <listeners> <jms-listener name="JMS-Gateway" busidref="startGwChannel" maxThreads="1" is-gateway="true" /> <jms-listener name="ESB-Listener" busidref="startEsbChannel" maxThreads="1"/> </listeners> <actions> <action name="dump1" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="true"/> </action> <action name="start_a_new_process_instance" class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor"> <property name="command" value="StartProcessInstanceCommand" /> <property name="process-definition-name" value="TestProcess"/> <property name="object-paths"> <object-path esb="BODY_CONTENT" bpm="theBody" /> </property> </action> <action name="dump2" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="true"/> </action> </actions> </service> <service category="SEI_BPM_Service1" name="Service1" description="SEI JBoss Test BPM Example: this is a service invoked within the process"> <listeners> <jms-listener name="ESB-Listener" busidref="service1EsbChannel" maxThreads="1"/> </listeners> <actions> <action name="dump3" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="true"/> </action> <!--<action name="serviceAction1" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="message" value="SERVICE1"/> </action> --> <action name="serviceAction1" class="com.sei.esb.jboss.actions.Service1"/> <action name="dump4" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="true"/> </action> </actions> </service> <service category="SEI_BPM_Service2" name="Service2" description="SEI JBoss Test BPM Example: this is a service invoked within the process"> <listeners> <jms-listener name="ESB-Listener" busidref="service2EsbChannel" maxThreads="1"/> </listeners> <actions> <action name="dump5" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="true"/> </action> <!-- <action name="serviceAction2" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="message" value="SERVICE2"/> </action> --> <action name="serviceAction2" class="com.sei.esb.jboss.actions.Service2"/> <action name="dump6" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="true"/> </action> </actions> </service> <service category="SEI_BPM_ResultsService" name="ResultsService" description="SEI JBoss Test BPM Example: Sends outbound results of the process flow"> <listeners> <jms-listener name="ESB-Listener" busidref="resultsService" maxThreads="1"/> </listeners> <actions> <action name="results-message" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="message" value="SUCCESS!" /> </action> </actions> </service> </services> </jbossesb>