You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2010/10/08 11:11:53 UTC
svn commit: r1005739 - in
/servicemix/components/engines/servicemix-cxf-se/trunk/src:
main/java/org/apache/servicemix/cxfse/ test/java/org/apache/servicemix/cxfse/
Author: ffang
Date: Fri Oct 8 09:11:53 2010
New Revision: 1005739
URL: http://svn.apache.org/viewvc?rev=1005739&view=rev
Log:
[SMXCOMP-812]One-way service method MEP gets NPE on proxy invocation
Modified:
servicemix/components/engines/servicemix-cxf-se/trunk/src/main/java/org/apache/servicemix/cxfse/CxfSeComponent.java
servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java
servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java
Modified: servicemix/components/engines/servicemix-cxf-se/trunk/src/main/java/org/apache/servicemix/cxfse/CxfSeComponent.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/main/java/org/apache/servicemix/cxfse/CxfSeComponent.java?rev=1005739&r1=1005738&r2=1005739&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/main/java/org/apache/servicemix/cxfse/CxfSeComponent.java (original)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/main/java/org/apache/servicemix/cxfse/CxfSeComponent.java Fri Oct 8 09:11:53 2010
@@ -84,6 +84,7 @@ public class CxfSeComponent extends Defa
}
if (bus == null) {
bus = new SpringBusFactory().createBus(CXF_CONFIG);
+ bus.getProperties().put(org.apache.cxf.interceptor.OneWayProcessorInterceptor.USE_ORIGINAL_THREAD, "true");
}
super.doInit();
}
Modified: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java?rev=1005739&r1=1005738&r2=1005739&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java (original)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java Fri Oct 8 09:11:53 2010
@@ -20,6 +20,7 @@ import java.io.File;
import java.net.URL;
import java.util.logging.Logger;
+import javax.jbi.messaging.InOnly;
import javax.jbi.messaging.InOut;
import javax.naming.InitialContext;
import javax.xml.namespace.QName;
@@ -40,6 +41,7 @@ public class CxfSeClientProxyTest extend
private static final Logger LOG = LogUtils.getL7dLogger(CxfSeClientProxyTest.class);
private DefaultServiceMixClient client;
private InOut io;
+ private InOnly inOnly;
private JBIContainer container;
protected void setUp() throws Exception {
@@ -65,7 +67,7 @@ public class CxfSeClientProxyTest extend
component.getServiceUnitManager().deploy("target", getServiceUnitPath("proxytarget"));
component.getServiceUnitManager().init("target", getServiceUnitPath("proxytarget"));
component.getServiceUnitManager().start("target");
-
+
component.getServiceUnitManager().deploy("proxy", getServiceUnitPath("proxy"));
component.getServiceUnitManager().init("proxy", getServiceUnitPath("proxy"));
component.getServiceUnitManager().start("proxy");
@@ -152,7 +154,24 @@ public class CxfSeClientProxyTest extend
io.getOutMessage()).indexOf("Hello ffang") > 0);
client.done(io);
-
+ client = new DefaultServiceMixClient(container);
+ inOnly = client.createInOnlyExchange();
+ inOnly.setService(new QName("http://apache.org/hello_world_soap_http", "SOAPService"));
+ inOnly.setInterfaceName(new QName("http://apache.org/hello_world_soap_http", "Greeter"));
+ inOnly.setOperation(new QName("http://apache.org/hello_world_soap_http", "greetMeOneWay"));
+ LOG.info("test clientProxy with OneWay");
+ inOnly.getInMessage().setContent(new StringSource(
+ "<message xmlns='http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper'>"
+ + "<part> "
+ + "<greetMeOneWay xmlns='http://apache.org/hello_world_soap_http/types'><requestType>"
+ + "oneway"
+ + "</requestType></greetMeOneWay>"
+ + "</part> "
+ + "</message>"));
+ client.sendSync(inOnly);
+
+ //sleep 2sec so that done message is sent before shutdown container
+ Thread.sleep(2000);
}
Modified: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java?rev=1005739&r1=1005738&r2=1005739&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java (original)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/GreeterImplForClientProxy.java Fri Oct 8 09:11:53 2010
@@ -54,6 +54,7 @@ public class GreeterImplForClientProxy i
private CalculatorPortType calculator;
private CalculatorPortType calculatorPayload;
private TestMtom mtom;
+
public String greetMe(String me) {
int ret = 0;
@@ -87,7 +88,7 @@ public class GreeterImplForClientProxy i
Holder<String> name = new Holder<String>("property");
mtom.testXop(name, param);
return (String) ((BindingProvider)mtom).getResponseContext().get("test-property");
- }
+ }
} catch (AddNumbersFault e) {
return "AddNumbersFault";
@@ -140,7 +141,12 @@ public class GreeterImplForClientProxy i
}
public void greetMeOneWay(String requestType) {
- // TODO Auto-generated method stub
+ System.out.println("greetMeOneWay get invoked");
+ try {
+ getCalculator().add(1, 2);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
@@ -218,6 +224,6 @@ public class GreeterImplForClientProxy i
public CalculatorPortType getCalculatorPayload() {
return calculatorPayload;
- }
+ }
}