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 2008/05/01 09:34:52 UTC
svn commit: r652444 - in
/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src:
main/java/org/apache/servicemix/cxfbc/
main/java/org/apache/servicemix/cxfbc/interceptors/
test/java/org/apache/servicemix/cxfbc/ test/resources/org/ap...
Author: ffang
Date: Thu May 1 00:34:51 2008
New Revision: 652444
URL: http://svn.apache.org/viewvc?rev=652444&view=rev
Log:
[SM-1331]cxf-bc provider not handling soap headers correctly
Modified:
servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutInterceptor.java
servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java
servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderTest.java
servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java
servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider.xml
servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml
Modified: servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java?rev=652444&r1=652443&r2=652444&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java (original)
+++ servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java Thu May 1 00:34:51 2008
@@ -160,7 +160,7 @@
}
-
+ outList.add(new JbiOutInterceptor());
outList.add(new JbiOutWsdl1Interceptor(isUseJBIWrapper()));
outList.add(new SoapPreProtocolOutInterceptor());
outList.add(new SoapOutInterceptor(getBus()));
Modified: servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutInterceptor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutInterceptor.java?rev=652444&r1=652443&r2=652444&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutInterceptor.java (original)
+++ servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutInterceptor.java Thu May 1 00:34:51 2008
@@ -27,18 +27,31 @@
import javax.jbi.messaging.MessageExchange;
import javax.jbi.messaging.NormalizedMessage;
import javax.xml.namespace.QName;
-
+import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
import org.apache.cxf.attachment.AttachmentImpl;
import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.model.SoapBindingInfo;
+import org.apache.cxf.binding.soap.model.SoapHeaderInfo;
+import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.headers.Header;
+import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Attachment;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
+import org.apache.cxf.service.model.BindingMessageInfo;
+import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.ws.addressing.AddressingProperties;
import org.apache.servicemix.cxfbc.WSAUtils;
+import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.apache.servicemix.soap.interceptors.jbi.JbiConstants;
+import org.apache.servicemix.soap.util.DomUtil;
import org.apache.servicemix.soap.util.QNameUtil;
+
public class JbiOutInterceptor extends AbstractPhaseInterceptor<Message> {
public JbiOutInterceptor() {
@@ -50,6 +63,82 @@
NormalizedMessage nm = me.getMessage("in");
fromNMSAttachments(message, nm);
fromNMSHeaders(message, nm);
+ extractHeaderFromMessagePart(message);
+ }
+
+ private void extractHeaderFromMessagePart(Message message) {
+ Source source = message.getContent(Source.class);
+ if (source == null) {
+ return;
+ }
+
+ Element element;
+ try {
+ element = new SourceTransformer().toDOMElement(source);
+ } catch (Exception e) {
+ throw new Fault(e);
+ }
+
+ if (!JbiConstants.WSDL11_WRAPPER_NAMESPACE.equals(element
+ .getNamespaceURI())
+ || !JbiConstants.WSDL11_WRAPPER_MESSAGE_LOCALNAME
+ .equals(element.getLocalName())) {
+ message.setContent(Source.class, new DOMSource(element));
+ return;
+ }
+
+ BindingOperationInfo bop = message.getExchange().get(
+ BindingOperationInfo.class);
+ BindingMessageInfo msg = isRequestor(message) ? bop.getInput() : bop
+ .getOutput();
+
+ SoapBindingInfo binding = (SoapBindingInfo) message.getExchange().get(
+ Endpoint.class).getEndpointInfo().getBinding();
+ String style = binding.getStyle(bop.getOperationInfo());
+ if (style == null) {
+ style = binding.getStyle();
+ }
+
+ Element partWrapper = DomUtil.getFirstChildElement(element);
+ while (partWrapper != null) {
+ extractHeaderParts((SoapMessage) message, element, partWrapper, msg);
+ partWrapper = DomUtil.getNextSiblingElement(partWrapper);
+ }
+ message.setContent(Source.class, new DOMSource(element));
+ }
+
+ private void extractHeaderParts(SoapMessage message,
+ Element element, Element partWrapper, BindingMessageInfo msg) {
+ List<NodeList> partsContent = new ArrayList<NodeList>();
+ if (partWrapper != null) {
+ if (!JbiConstants.WSDL11_WRAPPER_NAMESPACE.equals(element
+ .getNamespaceURI())
+ || !JbiConstants.WSDL11_WRAPPER_PART_LOCALNAME
+ .equals(partWrapper.getLocalName())) {
+ throw new Fault(new Exception(
+ "Unexpected part wrapper element '"
+ + QNameUtil.toString(element) + "' expected '{"
+ + JbiConstants.WSDL11_WRAPPER_NAMESPACE
+ + "}part'"));
+ }
+ NodeList nodes = partWrapper.getChildNodes();
+ partsContent.add(nodes);
+ }
+
+ List<Header> headerList = message.getHeaders();
+ List<SoapHeaderInfo> headers = msg.getExtensors(SoapHeaderInfo.class);
+ for (SoapHeaderInfo header : headers) {
+ NodeList nl = partsContent.get(0);
+ if (header.getPart().getConcreteName().getNamespaceURI().equals(
+ nl.item(0).getNamespaceURI())
+ && header.getPart().getConcreteName().getLocalPart()
+ .equals(nl.item(0).getLocalName())) {
+ headerList.add(new Header(header.getPart().getConcreteName(),
+ nl.item(0)));
+ partsContent.remove(0);
+ }
+
+ }
}
@@ -105,9 +194,14 @@
headerList.add(header);
}
- }
+ }
}
}
}
+ private boolean isRequestor(org.apache.cxf.message.Message message) {
+ return Boolean.TRUE.equals(message
+ .containsKey(org.apache.cxf.message.Message.REQUESTOR_ROLE));
+ }
+
}
Modified: servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java?rev=652444&r1=652443&r2=652444&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java (original)
+++ servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java Thu May 1 00:34:51 2008
@@ -34,6 +34,7 @@
import org.apache.cxf.binding.soap.model.SoapBindingInfo;
import org.apache.cxf.binding.soap.model.SoapHeaderInfo;
import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.headers.Header;
import org.apache.cxf.helpers.NSStack;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
@@ -193,13 +194,17 @@
partsContent.add(nodes);
}
+ List<Header> headerList = message.getHeaders();
List<SoapHeaderInfo> headers = msg.getExtensors(SoapHeaderInfo.class);
for (SoapHeaderInfo header : headers) {
- NodeList nl = partsContent.get(header.getPart().getIndex());
- Element headerElement = message.get(Element.class);
- for (int i = 0; i < nl.getLength(); i++) {
- headerElement.appendChild(nl.item(i));
+ NodeList nl = partsContent.get(0);
+ if (header.getPart().getConcreteName().getNamespaceURI().equals(nl.item(0).getNamespaceURI())
+ && header.getPart().getConcreteName().getLocalPart().equals(nl.item(0).getLocalName())) {
+ headerList.add(new Header(header.getPart().getConcreteName(),
+ nl.item(0)));
+ partsContent.remove(0);
}
+
}
return partsContent;
Modified: servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderTest.java?rev=652444&r1=652443&r2=652444&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderTest.java (original)
+++ servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderTest.java Thu May 1 00:34:51 2008
@@ -42,6 +42,8 @@
import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
import org.springframework.context.support.AbstractXmlApplicationContext;
+import uri.helloworld.HelloPortType;
+
public class CxfBcProviderTest extends SpringTestSupport {
private static final Logger LOG = LogUtils.getL7dLogger(org.apache.servicemix.cxfbc.CxfBcProviderTest.class);
@@ -143,6 +145,37 @@
assertTrue(new SourceTransformer().contentToString(
io.getOutMessage()).indexOf("Hello oneway test oneway") >= 0);
+ factory = new JaxWsServerFactoryBean();
+ factory.setServiceClass(HelloPortType.class);
+ factory.setServiceBean(new HelloPortTypeImpl());
+ address = "http://localhost:9003/helloWorld";
+ factory.setAddress(address);
+ server = factory.create();
+ endpoint = server.getEndpoint();
+ endpoint.getInInterceptors().add(new LoggingInInterceptor());
+ endpoint.getOutInterceptors().add(new LoggingOutInterceptor());
+ service = endpoint.getEndpointInfo().getService();
+ assertNotNull(service);
+
+
+
+ //test soap header using helloworld
+ io = client.createInOutExchange();
+ io.setService(new QName("http://apache.org/hello_world_soap_http", "SOAPServiceProvider"));
+ io.setInterfaceName(new QName("http://apache.org/hello_world_soap_http", "Greeter"));
+ io.setOperation(new QName("http://apache.org/hello_world_soap_http", "greetMe"));
+ io.getInMessage().setContent(new StringSource(
+ "<message xmlns='http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper'>"
+ + "<part> "
+ + "<greetMe xmlns='http://apache.org/hello_world_soap_http/types'><requestType>"
+ + "header test"
+ + "</requestType></greetMe>"
+ + "</part> "
+ + "</message>"));
+ client.sendSync(io);
+ assertTrue(new SourceTransformer().contentToString(
+ io.getOutMessage()).indexOf("Hello header test 12345") >= 0);
+
//test concurrency
io = client.createInOutExchange();
io.setService(new QName("http://apache.org/hello_world_soap_http", "SOAPServiceProvider"));
Modified: servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java?rev=652444&r1=652443&r2=652444&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java (original)
+++ servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java Thu May 1 00:34:51 2008
@@ -34,7 +34,10 @@
import org.apache.hello_world_soap_http.types.SayHiResponse;
import org.apache.hello_world_soap_http.types.TestDocLitFaultResponse;
import org.apache.hello_world_soap_http.types.TestNillableResponse;
-
+import uri.helloworld.HelloFault_Exception;
+import uri.helloworld.HelloHeader;
+import uri.helloworld.HelloPortType;
+import uri.helloworld.HelloRequest;
@WebService(serviceName = "SOAPServiceProvider",
portName = "SoapPort",
@@ -46,9 +49,11 @@
private CalculatorPortType calculator;
private Greeter greeter;
private Greeter securityGreeter;
+ private HelloPortType hello;
+
public String greetMe(String me) {
String ret = "";
-
+
try {
if ("ffang".equals(me)) {
ret = ret + getCalculator().add(1, 2);
@@ -57,6 +62,13 @@
} else if ("oneway test".equals(me)) {
getGreeter().greetMeOneWay("oneway");
ret = "oneway";
+ } else if ("header test".equals(me)) {
+ HelloRequest req = new HelloRequest();
+ req.setText("12");
+ HelloHeader header = new HelloHeader();
+ header.setId("345");
+ ret = ret + hello.hello(req, header).getText();
+
} else if ("https test".equals(me)) {
ret = ret + securityGreeter.greetMe("ffang");
} else if ("concurrency test".equals(me)) {
@@ -81,6 +93,8 @@
} catch (AddNumbersFault e) {
//should catch exception here if negative number is passed
ret = ret + e.getFaultInfo().getMessage();
+ } catch (HelloFault_Exception e) {
+ ret = ret + e.getFaultInfo().getId();
} catch (InterruptedException e) {
//
}
@@ -116,6 +130,14 @@
return greeter;
}
+ public void setHello(HelloPortType hello) {
+ this.hello = hello;
+ }
+
+ public HelloPortType getHello() {
+ return hello;
+ }
+
public void setSecurityGreeter(Greeter securityGreeter) {
this.securityGreeter = securityGreeter;
}
Modified: servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider.xml?rev=652444&r1=652443&r2=652444&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider.xml (original)
+++ servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider.xml Thu May 1 00:34:51 2008
@@ -21,54 +21,75 @@
xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0"
xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:test="urn:test"
+ xmlns:hello="uri:HelloWorld"
xmlns:calculator="http://apache.org/cxf/calculator"
xmlns:greeter="http://apache.org/hello_world_soap_http">
-
- <sm:container id="jbi" embedded="true">
-
- <sm:endpoints>
-
- <cxfbc:provider wsdl="/wsdl/calculator.wsdl"
- locationURI="http://localhost:9001/providertest"
- endpoint="CalculatorPort"
- service="calculator:CalculatorService"
- interfaceName="calculator:CalculatorPortType"
- >
- <cxfbc:inInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
- </cxfbc:inInterceptors>
- <cxfbc:outInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
- </cxfbc:outInterceptors>
- <cxfbc:inFaultInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
- </cxfbc:inFaultInterceptors>
- <cxfbc:outFaultInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
- </cxfbc:outFaultInterceptors>
- </cxfbc:provider>
-
- <cxfbc:provider wsdl="/wsdl/hello_world.wsdl"
- locationURI="http://localhost:9002/providertest_oneway"
- endpoint="SoapPort"
- service="greeter:SOAPService"
- interfaceName="greeter:Greeter"
- >
- <cxfbc:inInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
- </cxfbc:inInterceptors>
- <cxfbc:outInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
- </cxfbc:outInterceptors>
- <cxfbc:inFaultInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
- </cxfbc:inFaultInterceptors>
- <cxfbc:outFaultInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
- </cxfbc:outFaultInterceptors>
- </cxfbc:provider>
- </sm:endpoints>
-
- </sm:container>
-
+
+ <sm:container id="jbi" embedded="true">
+
+ <sm:endpoints>
+
+ <cxfbc:provider wsdl="/wsdl/calculator.wsdl"
+ locationURI="http://localhost:9001/providertest"
+ endpoint="CalculatorPort"
+ service="calculator:CalculatorService"
+ interfaceName="calculator:CalculatorPortType"
+ >
+ <cxfbc:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inInterceptors>
+ <cxfbc:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outInterceptors>
+ <cxfbc:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inFaultInterceptors>
+ <cxfbc:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outFaultInterceptors>
+ </cxfbc:provider>
+
+ <cxfbc:provider wsdl="/wsdl/hello_world.wsdl"
+ locationURI="http://localhost:9002/providertest_oneway"
+ endpoint="SoapPort"
+ service="greeter:SOAPService"
+ interfaceName="greeter:Greeter"
+ >
+ <cxfbc:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inInterceptors>
+ <cxfbc:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outInterceptors>
+ <cxfbc:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inFaultInterceptors>
+ <cxfbc:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outFaultInterceptors>
+ </cxfbc:provider>
+
+ <cxfbc:provider wsdl="/HelloWorld-DOC.wsdl"
+ locationURI="http://localhost:9003/helloWorld"
+ endpoint="HelloPortProxy"
+ service="hello:HelloService"
+ interfaceName="hello:HelloPortType"
+ >
+ <cxfbc:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inInterceptors>
+ <cxfbc:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outInterceptors>
+ <cxfbc:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inFaultInterceptors>
+ <cxfbc:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outFaultInterceptors>
+ </cxfbc:provider>
+ </sm:endpoints>
+
+ </sm:container>
+
</beans>
Modified: servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml?rev=652444&r1=652443&r2=652444&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml (original)
+++ servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml Thu May 1 00:34:51 2008
@@ -21,19 +21,23 @@
xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0"
xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:test="urn:test"
+ xmlns:hello="uri:HelloWorld"
xmlns:calculator="http://apache.org/cxf/calculator"
xmlns:greeter="http://apache.org/hello_world_soap_http">
<cxfse:endpoint>
- <cxfse:pojo>
+ <cxfse:pojo >
<bean class="org.apache.servicemix.cxfbc.GreeterImplForProvider">
<property name="calculator">
- <cxfse:proxy service="calculator:CalculatorService" context="#context" type="org.apache.cxf.calculator.CalculatorPortType" />
+ <cxfse:proxy service="calculator:CalculatorService" context="#context" type="org.apache.cxf.calculator.CalculatorPortType"/>
</property>
<property name="greeter">
- <cxfse:proxy service="greetr:SOAPService" context="#context" type="org.apache.hello_world_soap_http.Greeter" />
+ <cxfse:proxy service="greetr:SOAPService" context="#context" type="org.apache.hello_world_soap_http.Greeter"/>
</property>
+ <property name="hello">
+ <cxfse:proxy service="hello:HelloService" context="#context" type="uri.helloworld.HelloPortType"/>
+ </property>
</bean>
</cxfse:pojo>