You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by mtomi <mi...@gmail.com> on 2014/04/24 08:38:34 UTC

Problem with calling WebService from serviceTask

*My goal is to call succesfully a WebService in activity process.I'm working
with Servicemix 5.0.0. I started with example
apache-servicemix-5.0.0/examples/activiti/activiti-camel , which I run
succesfully via features:install.Then I modified file OrderProcess.bpmn.xml
and the main process in it looks like below now:*                                                                             
*I use the class WsDelegate I found as a sample to help calling WebService
from activiti process, and it looks like below:*package
org.apache.servicemix.examples.activiti; import java.util.ArrayList;import
java.util.StringTokenizer; import
org.activiti.engine.delegate.DelegateExecution;import
org.activiti.engine.delegate.Expression;import
org.activiti.engine.delegate.JavaDelegate;import
org.apache.cxf.endpoint.Client;import
org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;import
javax.xml.namespace.*;public class WsDelegate implements JavaDelegate {	
private Expression wsdl;	  private Expression operation;	  private
Expression parameters;	  private Expression returnValue; 	  public void
execute(DelegateExecution execution) throws Exception {	    String
wsdlString = (String)wsdl.getValue(execution); 	   
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();	   
Client client = dcf.createClient(wsdlString); 	    ArrayList paramStrings =
new ArrayList();	    if (parameters!=null) {	      StringTokenizer st = new
StringTokenizer( (String)parameters.getValue(execution), ",");	      while
(st.hasMoreTokens()) {	        paramStrings.add(st.nextToken().trim());	     
}	    }	    Object response =
client.invoke((String)operation.getValue(execution),
paramStrings.toArray(new Object[0]));	    if (returnValue!=null) {	     
String returnVariableName = (String) returnValue.getValue(execution);	     
execution.setVariable(returnVariableName, response);	    }	  }}*I modified
example class ActivitiRouteBuilder and this is the code after
modification:*package org.apache.servicemix.examples.activiti; import static
org.activiti.camel.ActivitiProducer.PROCESS_KEY_PROPERTY; import
java.util.HashMap;import java.util.Map; import
org.apache.camel.Exchange;import org.apache.camel.Handler;import
org.apache.camel.Message;import org.apache.camel.builder.RouteBuilder; /** *
Camel routes that interact with the business process defined in the *
OSGI-INF/activiti/OrderProcess.bpmn20.xml file */public class
ActivitiRouteBuilder extends RouteBuilder {     private final Helper helper
= new Helper();     @Override    public void configure() throws Exception {       
/*         * This route will start a new OrderProcess instance.  Using the
PROCESS_KEY_PROPERTY, we are assigning a         * business key to our
process to allow for easier correlation in later processing steps.  We are
also         * sending a Map containing additional variables to add to the
process instance.         */        from("jetty:http://0.0.0.0:8484/test")           
.setBody(bean(helper))            .setProperty(PROCESS_KEY_PROPERTY,
simple("file:name"))            .to("activiti:OrderProcess")           
.log("Process to handle incoming order file has been started (process
instance id ${body})");         /*         * This route will notify a
running OrderProcess of an order delivery event.  Here too, we are setting
the         * PROCESS_KEY_PROPERTY to correlate the delivery message with
right order process instance.         */       
from("file:var/activiti-camel/delivery")            .log("Notifying process
about delivery for order ${file:name}")           
.setProperty(PROCESS_KEY_PROPERTY, simple("file:name"))           
.to("activiti:OrderProcess:receiveDelivery");         /*         * The BPMN
process can also trigger Camel routes as part of the process.  In these
routes, the variables that         * you added to the process are available
as Exchange properties.  The next two routes will be triggered while        
* processing the order and the order delivery.         */       
from("activiti:OrderProcess:processOrder")            .log("Processing order
${property.orderid} created on ${property:timestamp}")            .log(" 
original message: ${property.message}");        
from("activiti:OrderProcess:processDelivery")            .log("Processing
delivery for order ${property.orderid} created on ${property:timestamp}")           
.log("  original message: ${property.message}");    }     /*     * A few
helper methods used for routing     */    public static final class Helper {        
/*         * This method will extract information from the Exchange (using
Camel annotations) and put them in a         * Map that will be used for
setting up the process' variables.         */        @Handler        public
Map getProcessVariables(Exchange exchange) {        	Message in =
exchange.getIn();            Map<String, Object> variables = new
HashMap<String, Object>();            variables.put("message", "pusto");           
variables.put("orderid", in.getHeader("id"));           
variables.put("timestamp", "teraz");            return variables;        }   
}}*And when I try to start the process through calling
http://localhost:8484/test i get this stack
trace:*org.apache.camel.CamelExecutionException: Exception occurred during
execution on the exchange: Exchange[Message: {timestamp=teraz,
message=pusto, orderid=null}]at
org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1379)at
org.apache.camel.impl.DefaultExchange.setException(DefaultExchange.java:283)at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:64)at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)at
org.apache.camel.processor.Pipeline.process(Pipeline.java:118)at
org.apache.camel.processor.Pipeline.process(Pipeline.java:80)at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)at
org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:151)at
javax.servlet.http.HttpServlet.service(HttpServlet.java:806)at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)at
org.eclipse.jetty.servlets.MultiPartFilter.doFilter(MultiPartFilter.java:119)at
org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:44)at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)at
org.eclipse.jetty.server.Server.handle(Server.java:363)at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)at
java.lang.Thread.run(Thread.java:722)Caused by:
java.lang.NoClassDefFoundError: Ljavax/xml/namespace/QName;at
java.lang.Class.getDeclaredFields0(Native Method)at
java.lang.Class.privateGetDeclaredFields(Class.java:2308)at
java.lang.Class.getDeclaredFields(Class.java:1760)at
com.sun.xml.bind.v2.model.nav.ReflectionNavigator.getDeclaredFields(ReflectionNavigator.java:274)at
com.sun.xml.bind.v2.model.nav.ReflectionNavigator.getDeclaredFields(ReflectionNavigator.java:57)at
com.sun.xml.bind.v2.model.impl.ClassInfoImpl.findFieldProperties(ClassInfoImpl.java:377)at
com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:308)at
com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:176)at
com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:243)at
com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:100)at
com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)at
com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:209)at
com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:95)at
com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)at
com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:315)at
com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:330)at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:466)at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:302)at
com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140)at
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154)at
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121)at
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:202)at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at
java.lang.reflect.Method.invoke(Method.java:601)at
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:143)at
javax.xml.bind.ContextFinder.find(ContextFinder.java:310)at
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:446)at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:393)at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:240)at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:233)at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:188)at
org.apache.servicemix.examples.activiti.WsDelegate.execute(WsDelegate.java:22)at
org.activiti.engine.impl.delegate.JavaDelegateInvocation.invoke(JavaDelegateInvocation.java:34)at
org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:37)at
org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:25)at
org.activiti.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:49)at
org.activiti.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:40)at
org.activiti.engine.impl.bpmn.helper.ClassDelegate.execute(ClassDelegate.java:115)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:44)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)at
org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicOperationTransitionCreateScope.java:49)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(AtomicOperationTransitionNotifyListenerTake.java:65)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(AtomicOperationTransitionDestroyScope.java:115)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:36)at
org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:381)at
org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnActivityBehavior.java:102)at
org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavior(BpmnActivityBehavior.java:51)at
org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBehavior.java:44)at
org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.execute(FlowNodeActivityBehavior.java:36)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:44)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStartInitial.eventNotificationsCompleted(AtomicOperationProcessStartInitial.java:46)at
org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStart.eventNotificationsCompleted(AtomicOperationProcessStart.java:45)at
org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
org.activiti.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:335)at
org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:72)at
org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:31)at
org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)at
org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)at
org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:59)at
org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)at
org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:55)at
Proxyf138e743_9da0_45a4_be4e_6b2c8e65cd48.startProcessInstanceByKey(Unknown
Source)at
org.activiti.camel.ActivitiProducer.startProcess(ActivitiProducer.java:93)at
org.activiti.camel.ActivitiProducer.process(ActivitiProducer.java:48)at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)...
32 moreCaused by: java.lang.ClassNotFoundException:
javax.xml.namespace.QNameat
java.net.URLClassLoader$1.run(URLClassLoader.java:366)at
java.net.URLClassLoader$1.run(URLClassLoader.java:355)at
java.security.AccessController.doPrivileged(Native Method)at
java.net.URLClassLoader.findClass(URLClassLoader.java:354)at
java.lang.ClassLoader.loadClass(ClassLoader.java:423)at
java.lang.ClassLoader.loadClass(ClassLoader.java:356)... 137 more*What
should I do to make it run?*



--
View this message in context: http://servicemix.396122.n5.nabble.com/Problem-with-calling-WebService-from-serviceTask-tp5720072.html
Sent from the ServiceMix - Dev mailing list archive at Nabble.com.

Re: Problem with calling WebService from serviceTask

Posted by Krzysztof Sobkowiak <kr...@gmail.com>.
Hi Michal

Could you please provide a small complete sample? I have changed the
route as described in your email, but it works (I had to install the
camel-jetty) feature. You have implemented the class WsDelegate but you
have not written where do you use it - probably somewhere in the process
definition.

The stack trace says

Caused by: java.lang.ClassNotFoundException:
javax.xml.namespace.QNameat

In my opinion your bundle is missing the import of this package. If you look in one of the jaxws samples (e.g. cxf-osg), import of the package javax.xml.namespace is added to the maven bundle plugin configuration. 

<Import-Package>
     javax.jws,
     javax.wsdl,
     *javax.xml.namespace,*
     org.springframework.beans.factory.config,
     *
 </Import-Package>


I think, you should add this (and perhaps some additional) packages into the import definition


Best regards
Krysztof

 

On 24.04.2014 08:38, mtomi wrote:
> *My goal is to call succesfully a WebService in activity process.I'm working
> with Servicemix 5.0.0. I started with example
> apache-servicemix-5.0.0/examples/activiti/activiti-camel , which I run
> succesfully via features:install.Then I modified file OrderProcess.bpmn.xml
> and the main process in it looks like below now:*                                                                             
> *I use the class WsDelegate I found as a sample to help calling WebService
> from activiti process, and it looks like below:*package
> org.apache.servicemix.examples.activiti; import java.util.ArrayList;import
> java.util.StringTokenizer; import
> org.activiti.engine.delegate.DelegateExecution;import
> org.activiti.engine.delegate.Expression;import
> org.activiti.engine.delegate.JavaDelegate;import
> org.apache.cxf.endpoint.Client;import
> org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;import
> javax.xml.namespace.*;public class WsDelegate implements JavaDelegate {	
> private Expression wsdl;	  private Expression operation;	  private
> Expression parameters;	  private Expression returnValue; 	  public void
> execute(DelegateExecution execution) throws Exception {	    String
> wsdlString = (String)wsdl.getValue(execution); 	   
> JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();	   
> Client client = dcf.createClient(wsdlString); 	    ArrayList paramStrings =
> new ArrayList();	    if (parameters!=null) {	      StringTokenizer st = new
> StringTokenizer( (String)parameters.getValue(execution), ",");	      while
> (st.hasMoreTokens()) {	        paramStrings.add(st.nextToken().trim());	     
> }	    }	    Object response =
> client.invoke((String)operation.getValue(execution),
> paramStrings.toArray(new Object[0]));	    if (returnValue!=null) {	     
> String returnVariableName = (String) returnValue.getValue(execution);	     
> execution.setVariable(returnVariableName, response);	    }	  }}*I modified
> example class ActivitiRouteBuilder and this is the code after
> modification:*package org.apache.servicemix.examples.activiti; import static
> org.activiti.camel.ActivitiProducer.PROCESS_KEY_PROPERTY; import
> java.util.HashMap;import java.util.Map; import
> org.apache.camel.Exchange;import org.apache.camel.Handler;import
> org.apache.camel.Message;import org.apache.camel.builder.RouteBuilder; /** *
> Camel routes that interact with the business process defined in the *
> OSGI-INF/activiti/OrderProcess.bpmn20.xml file */public class
> ActivitiRouteBuilder extends RouteBuilder {     private final Helper helper
> = new Helper();     @Override    public void configure() throws Exception {       
> /*         * This route will start a new OrderProcess instance.  Using the
> PROCESS_KEY_PROPERTY, we are assigning a         * business key to our
> process to allow for easier correlation in later processing steps.  We are
> also         * sending a Map containing additional variables to add to the
> process instance.         */        from("jetty:http://0.0.0.0:8484/test")           
> .setBody(bean(helper))            .setProperty(PROCESS_KEY_PROPERTY,
> simple("file:name"))            .to("activiti:OrderProcess")           
> .log("Process to handle incoming order file has been started (process
> instance id ${body})");         /*         * This route will notify a
> running OrderProcess of an order delivery event.  Here too, we are setting
> the         * PROCESS_KEY_PROPERTY to correlate the delivery message with
> right order process instance.         */       
> from("file:var/activiti-camel/delivery")            .log("Notifying process
> about delivery for order ${file:name}")           
> .setProperty(PROCESS_KEY_PROPERTY, simple("file:name"))           
> .to("activiti:OrderProcess:receiveDelivery");         /*         * The BPMN
> process can also trigger Camel routes as part of the process.  In these
> routes, the variables that         * you added to the process are available
> as Exchange properties.  The next two routes will be triggered while        
> * processing the order and the order delivery.         */       
> from("activiti:OrderProcess:processOrder")            .log("Processing order
> ${property.orderid} created on ${property:timestamp}")            .log(" 
> original message: ${property.message}");        
> from("activiti:OrderProcess:processDelivery")            .log("Processing
> delivery for order ${property.orderid} created on ${property:timestamp}")           
> .log("  original message: ${property.message}");    }     /*     * A few
> helper methods used for routing     */    public static final class Helper {        
> /*         * This method will extract information from the Exchange (using
> Camel annotations) and put them in a         * Map that will be used for
> setting up the process' variables.         */        @Handler        public
> Map getProcessVariables(Exchange exchange) {        	Message in =
> exchange.getIn();            Map<String, Object> variables = new
> HashMap<String, Object>();            variables.put("message", "pusto");           
> variables.put("orderid", in.getHeader("id"));           
> variables.put("timestamp", "teraz");            return variables;        }   
> }}*And when I try to start the process through calling
> http://localhost:8484/test i get this stack
> trace:*org.apache.camel.CamelExecutionException: Exception occurred during
> execution on the exchange: Exchange[Message: {timestamp=teraz,
> message=pusto, orderid=null}]at
> org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1379)at
> org.apache.camel.impl.DefaultExchange.setException(DefaultExchange.java:283)at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:64)at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)at
> org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:151)at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:806)at
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)at
> org.eclipse.jetty.servlets.MultiPartFilter.doFilter(MultiPartFilter.java:119)at
> org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:44)at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)at
> org.eclipse.jetty.server.Server.handle(Server.java:363)at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)at
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)at
> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)at
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)at
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)at
> java.lang.Thread.run(Thread.java:722)Caused by:
> java.lang.NoClassDefFoundError: Ljavax/xml/namespace/QName;at
> java.lang.Class.getDeclaredFields0(Native Method)at
> java.lang.Class.privateGetDeclaredFields(Class.java:2308)at
> java.lang.Class.getDeclaredFields(Class.java:1760)at
> com.sun.xml.bind.v2.model.nav.ReflectionNavigator.getDeclaredFields(ReflectionNavigator.java:274)at
> com.sun.xml.bind.v2.model.nav.ReflectionNavigator.getDeclaredFields(ReflectionNavigator.java:57)at
> com.sun.xml.bind.v2.model.impl.ClassInfoImpl.findFieldProperties(ClassInfoImpl.java:377)at
> com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:308)at
> com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:176)at
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:243)at
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:100)at
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)at
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:209)at
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:95)at
> com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:81)at
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:315)at
> com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:330)at
> com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:466)at
> com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:302)at
> com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140)at
> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154)at
> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121)at
> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:202)at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at
> java.lang.reflect.Method.invoke(Method.java:601)at
> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:143)at
> javax.xml.bind.ContextFinder.find(ContextFinder.java:310)at
> javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:446)at
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:393)at
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:240)at
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:233)at
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:188)at
> org.apache.servicemix.examples.activiti.WsDelegate.execute(WsDelegate.java:22)at
> org.activiti.engine.impl.delegate.JavaDelegateInvocation.invoke(JavaDelegateInvocation.java:34)at
> org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:37)at
> org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:25)at
> org.activiti.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:49)at
> org.activiti.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:40)at
> org.activiti.engine.impl.bpmn.helper.ClassDelegate.execute(ClassDelegate.java:115)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:44)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)at
> org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicOperationTransitionCreateScope.java:49)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(AtomicOperationTransitionNotifyListenerTake.java:65)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(AtomicOperationTransitionDestroyScope.java:115)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:36)at
> org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:381)at
> org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnActivityBehavior.java:102)at
> org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavior(BpmnActivityBehavior.java:51)at
> org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBehavior.java:44)at
> org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.execute(FlowNodeActivityBehavior.java:36)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:44)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStartInitial.eventNotificationsCompleted(AtomicOperationProcessStartInitial.java:46)at
> org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStart.eventNotificationsCompleted(AtomicOperationProcessStart.java:45)at
> org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)at
> org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:80)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:546)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:541)at
> org.activiti.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:335)at
> org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:72)at
> org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:31)at
> org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)at
> org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)at
> org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:59)at
> org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)at
> org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:55)at
> Proxyf138e743_9da0_45a4_be4e_6b2c8e65cd48.startProcessInstanceByKey(Unknown
> Source)at
> org.activiti.camel.ActivitiProducer.startProcess(ActivitiProducer.java:93)at
> org.activiti.camel.ActivitiProducer.process(ActivitiProducer.java:48)at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)...
> 32 moreCaused by: java.lang.ClassNotFoundException:
> javax.xml.namespace.QNameat
> java.net.URLClassLoader$1.run(URLClassLoader.java:366)at
> java.net.URLClassLoader$1.run(URLClassLoader.java:355)at
> java.security.AccessController.doPrivileged(Native Method)at
> java.net.URLClassLoader.findClass(URLClassLoader.java:354)at
> java.lang.ClassLoader.loadClass(ClassLoader.java:423)at
> java.lang.ClassLoader.loadClass(ClassLoader.java:356)... 137 more*What
> should I do to make it run?*
>
>
>
> --
> View this message in context: http://servicemix.396122.n5.nabble.com/Problem-with-calling-WebService-from-serviceTask-tp5720072.html
> Sent from the ServiceMix - Dev mailing list archive at Nabble.com.


-- 
Krzysztof Sobkowiak

JEE & OSS Architect | Technical Architect @ Capgemini
Capgemini <http://www.pl.capgemini.com/> | Software Solutions Center
<http://www.pl.capgemini-sdm.com/> | Wroclaw
e-mail: krzys.sobkowiak@gmail.com <ma...@gmail.com> |
Twitter: @KSobkowiak