[jbossws-issues] [JBoss JIRA] Created: (JBWS-1807) Support http://schemas.xmlsoap.org/wsdl/http bindings in WSDL for the Provider interface

Jonah Beckford (JIRA) jira-events at lists.jboss.org
Tue Sep 11 21:32:11 EDT 2007


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

        



More information about the jbossws-issues mailing list