[JBoss JIRA] Created: (JBWS-1807) Support http://schemas.xmlsoap.org/wsdl/http bindings in WSDL for the Provider interface
by Jonah Beckford (JIRA)
Support http://schemas.xmlsoap.org/wsdl/http bindings in WSDL for the Provider interface
----------------------------------------------------------------------------------------
Key: JBWS-1807
URL: http://jira.jboss.com/jira/browse/JBWS-1807
Project: JBoss Web Services
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: jbossws-jaxws
Affects Versions: jbossws-2.0.1
Environment: JBoss 4.0.5 on Windows XP
Reporter: Jonah Beckford
When using the XML/HTTP binding with the Provider interface, you get warnings about "Unsupported binding", and subsequent errors. Because the WSDL11Reader (?) does not support XML/HTTP, you can only get limited XML/HTTP support by using annotations. In particular, there does not seem to be a way to accept HTTP GET requests.
The Provider interface does work, as long as a <soap:binding/> is used in the WSDL. The logs are:
01:14:56,029 INFO [TomcatDeployer] deploy, ctxPath=/jaxws, warUrl=.../tmp/deploy/tmp8703jaxws-exp.war/
01:14:56,372 WARN [WSDL11Reader] Unprocessed extension element: {http://schemas.xmlsoap.org/wsdl/http/}address
01:14:56,372 WARN [WSDL11Reader] Unsupported binding: {http://schemas.xmlsoap.org/wsdl/http/}binding
01:14:56,372 WARN [WSDL11Reader] Unsupported binding: {http://schemas.xmlsoap.org/wsdl/http/}binding
01:14:56,372 ERROR [MainDeployer] Could not start deployment: file:/C:/services/jboss-4.0.5.GA/server/default/deploy/jaxws.war
org.jboss.ws.WSException: Cannot find port in wsdl: {http://ws.com/}ProviderPort
at org.jboss.ws.metadata.builder.MetaDataBuilder.replaceAddressLocation(MetaDataBuilder.java:338)
at org.jboss.ws.metadata.builder.jaxws.JAXWSProviderMetaDataBuilder.buildProviderMetaData(JAXWSProviderMetaDataBuilder.java:147)
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:55)
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:63)
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.create(UnifiedMetaDataDeploymentAspect.java:66)
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:115)
at org.jboss.wsf.container.jboss40.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:97)
at org.jboss.wsf.container.jboss40.DeployerInterceptor.start(DeployerInterceptor.java:90)
at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy49.start(Unknown Source)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy8.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
The provider bean is:
@WebServiceProvider(wsdlLocation = "WEB-INF/wsdl/provider2.wsdl", portName = "ProviderPort", serviceName = "Provider", targetNamespace = "http://ws.com/")
@ServiceMode(value = Service.Mode.PAYLOAD)
@BindingType(value=HTTPBinding.HTTP_BINDING)
public class Bean2 implements Provider<Source> {
public Source invoke(Source source) {
String body = "<reply><descr>I am replying with your input!</descr></reply>";
Source dest = new StreamSource(
new ByteArrayInputStream(body.getBytes()));
return dest;
}
}
The WSDL is:
<?xml version='1.0'?>
<definitions name='ProviderService'
xmlns='http://schemas.xmlsoap.org/wsdl/'
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
xmlns:tns='http://ws.com/'
targetNamespace='http://ws.com/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<message name='m1'>
<part name='part1' type='xsd:binary' />
</message>
<message name='m2'>
<part name='response' type='xsd:binary' />
</message>
<portType name="pt1">
<operation name="o1">
<input message="tns:m1" />
<output message="tns:m2" />
</operation>
</portType>
<portType name='pt2'>
<operation name='o1'>
<input message='tns:echo' />
<output message='tns:echoResponse' />
</operation>
</portType>
<binding name="b1" type="tns:pt2">
<!-- The soap:binding seems to be needed by org.jboss.ws.metadata.builder.MetaDataBuilder.replaceAddressLocation.
-->
<!--
<soap:binding style='document'
transport='http://schemas.xmlsoap.org/soap/http' />
-->
<http:binding verb="GET" />
<operation name="o1">
<http:operation location="o1" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:content type="text/xml" />
</output>
</operation>
</binding>
<binding name='b2' type='tns:pt2'>
<soap:binding style='document'
transport='http://schemas.xmlsoap.org/soap/http' />
<operation name='o1'>
<soap:operation soapAction='' />
<input>
<soap:body use='literal' />
</input>
<output>
<soap:body use='literal' />
</output>
</operation>
</binding>
<service name="ProviderService">
<port name="ProviderPort" binding="tns:b1">
<http:address location="http://example.com/" />
</port>
</service>
</definitions>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
17 years, 2 months
[JBoss JIRA] Created: (JBWS-1811) JAXWS client implementation failing to read/publish CLIENT_ADDRESSING_PROPERTIES inside client invocation
by Andrew Dinn (JIRA)
JAXWS client implementation failing to read/publish CLIENT_ADDRESSING_PROPERTIES inside client invocation
---------------------------------------------------------------------------------------------------------
Key: JBWS-1811
URL: http://jira.jboss.com/jira/browse/JBWS-1811
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-jaxws
Affects Versions: jbossws-2.1.0
Reporter: Andrew Dinn
Priority: Minor
According to the WS spec (5.0 Addressing Context) a JAXWS client is supposed to be able to specify AddressingProperties for a web method invocation by setting the CLIENT_ADDRESSING_PROPERTIES property of the request context obtained from the port (BindingProvider). After the invocation the same property on the response context should be populated with the response AddressingProperties.
The WS code is only detecting WSAddressingProperties if they are installed in the request context with key CLIENT_ADDRESSING_PROPERTIES_OUTBOUND and is only publishing WSAddressingProperties in the response context with key CLIENT_ADDRESSING_PROPERTIES_INBOUND. Although these are the valid keys for use in client side handlers they are incorrect for use in the client. These values need to be copied from/to the CLIENT_ADDRESSING_PROPERTIES value when inside the client call before/after handler processing.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
17 years, 2 months