You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Sireesh <si...@cognizant.com> on 2007/07/17 14:39:32 UTC

jsr181 style attribute defaulting to document type

Hi 
         The style attribute of jsr181 in service mix is defaulting to
document type. When i set the attribute style = "rpc" the wsdl generated is
still having soap binding style as "document". 

The xbean written looks like :

    <jsr181:endpoint 
               service="blwb:FTPInput"
               endpoint="soap"
               pojoClass="com.dnb.blwb.bltwb.FetchServiceImpl"
               serviceInterface="com.dnb.blwb.bltwb.FetchService"
		       style="rpc" />  

where i mentioned the style as rpc but the wsdl generated shows the
following :

        <wsdl:binding name="endpointBinding" type="tns:FTPInputPortType">
          <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="getFile">
			<wsdlsoap:operation soapAction=""/>
			<wsdl:input name="getFileRequest">
				<wsdlsoap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="getFileResponse">
				<wsdlsoap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>


where the soap binding style is still a document type.

We need have an rpc binding style as our service should be invoked by jBPM
which invokes only rpc types.

Can anyone help me on having by service of rpc type.



Thanks,
Sireesh.
-- 
View this message in context: http://www.nabble.com/jsr181-style-attribute-defaulting-to-document-type-tf4096617s12049.html#a11648511
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: jsr181 style attribute defaulting to document type

Posted by Adrian Co <ac...@exist.com>.
I don't see this exception when I tried it. (I'm using the latest 
servicemix in trunk).

Though the wsdl I'm getting is still doc-lit. :(

I don't have any idea why that is for now. I can only suggest going wsdl 
first as a possible alternative. Sorry.

Sireesh wrote:
> Hi,
>
>   I made the changes suggested by you. Now the interface that i had is as
> below:
>
> import javax.jws.WebMethod;
> import javax.jws.WebService;
>
> @WebService(name = "FetchService", targetNamespace =
> "http://blwb.dnb.com/getGlobalService")
> public interface FetchService {
> 	@WebMethod
> 	public String getFile(String name);
> }
>
>
> and the pojo class is as below:
>
>
>
> import javax.jws.WebMethod;
> import javax.jws.soap.SOAPBinding;
>
> @javax.jws.soap.SOAPBinding(style=javax.jws.soap.SOAPBinding.Style.RPC,
> use=javax.jws.soap.SOAPBinding.Use.LITERAL,
> parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED)
> public class FetchServiceImpl implements FetchService {
> 	
> 	@WebMethod 
> 	public String getFile(String name) {
> 		//some code here		
> 		return downloadFilepath;
> 	}
> }
>        
>
>
> My xbean looks like this:
>
>  <jsr181:endpoint 
>                service="blwb:FTPInput"
>                endpoint="soap"
>                pojoClass="com.dnb.blwb.bltwb.FetchServiceImpl"
>                serviceInterface="com.dnb.blwb.bltwb.FetchService"
> 		       style="rpc" 
> 		       annotations="java5"/>
>
> But i am getting a class cast exception during deployment:
>
>         <component-task-result-details>
>                 <task-result-details>
>                         <task-id>deploy</task-id>
>                         <task-result>FAILED</task-result>
>                         <message-type>ERROR</message-type>
>                         <task-status-msg>
> <msg-loc-info>
> <loc-token/>
> <loc-message>java.lang.ClassCastException: $Proxy53</loc-message>
> </msg-loc-info>
> </task-status-msg>
>                         <exception-info>
>                                 <nesting-level>1</nesting-level>
>                                 <msg-loc-info>
>                                         <loc-token/>
>                                         <loc-message>$Proxy53</loc-message>
>                                        
> <stack-trace><![CDATA[java.lang.ClassCastException: $Proxy53
>         at
> sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:223)
>         at
> sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:213)
>         at
> sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
>         at
> sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
>         at java.lang.Class.initAnnotationsIfNecessary(Class.java:2998)
>         at java.lang.Class.getAnnotation(Class.java:2958)
>         at java.lang.Class.isAnnotationPresent(Class.java:2970)
>         at
> org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations.hasWebServiceAnnotation(Jsr181WebAnnotations.jav
>         at
> org.codehaus.xfire.annotations.AnnotationServiceFactory.create(AnnotationServiceFactory.java:168)
>         at
> org.apache.servicemix.jsr181.Jsr181Endpoint.registerService(Jsr181Endpoint.java:301)
>         at
> org.apache.servicemix.jsr181.Jsr181Endpoint.validate(Jsr181Endpoint.java:216)
>         at
> org.apache.servicemix.common.AbstractDeployer.validate(AbstractDeployer.java:58)
>         at
> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
>         at
> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:92)
>         at
> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
>         at
> org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
>         at
> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:527)
>         at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:334)
>         at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:645)
>         at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$200(AutoDeploymentService.java:62)
>         at
> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:608)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)
> ]]></stack-trace>
>
>
>
> Please help me solving this error.
>
> Thanks,
> Sireesh.
>
>
>
>
> Adrian Co wrote:
>   
>> Hi,
>>
>> Are you using code first development?
>>
>> I'm not really sure, but can you try specifying the style in the 
>> annotation of the pojo?
>>
>> e.g.
>>
>> @javax.jws.soap.SOAPBinding(
>>      style=javax.jws.soap.SOAPBinding.Style.RPC,
>>      use=javax.jws.soap.SOAPBinding.Use.LITERAL,
>>      parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED)
>>
>>
>> Hope it helps.
>>
>>
>>
>> Sireesh wrote:
>>     
>>> Hi 
>>>          The style attribute of jsr181 in service mix is defaulting to
>>> document type. When i set the attribute style = "rpc" the wsdl generated
>>> is
>>> still having soap binding style as "document". 
>>>
>>> The xbean written looks like :
>>>
>>>     <jsr181:endpoint 
>>>                service="blwb:FTPInput"
>>>                endpoint="soap"
>>>                pojoClass="com.dnb.blwb.bltwb.FetchServiceImpl"
>>>                serviceInterface="com.dnb.blwb.bltwb.FetchService"
>>> 		       style="rpc" />  
>>>
>>> where i mentioned the style as rpc but the wsdl generated shows the
>>> following :
>>>
>>>         <wsdl:binding name="endpointBinding" type="tns:FTPInputPortType">
>>>           <wsdlsoap:binding style="document"
>>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>> 		<wsdl:operation name="getFile">
>>> 			<wsdlsoap:operation soapAction=""/>
>>> 			<wsdl:input name="getFileRequest">
>>> 				<wsdlsoap:body use="literal"/>
>>> 			</wsdl:input>
>>> 			<wsdl:output name="getFileResponse">
>>> 				<wsdlsoap:body use="literal"/>
>>> 			</wsdl:output>
>>> 		</wsdl:operation>
>>> 	</wsdl:binding>
>>>
>>>
>>> where the soap binding style is still a document type.
>>>
>>> We need have an rpc binding style as our service should be invoked by
>>> jBPM
>>> which invokes only rpc types.
>>>
>>> Can anyone help me on having by service of rpc type.
>>>
>>>
>>>
>>> Thanks,
>>> Sireesh.
>>>   
>>>       
>>
>>     
>
>   


Re: jsr181 style attribute defaulting to document type

Posted by Sireesh <si...@cognizant.com>.
Hi,

  I made the changes suggested by you. Now the interface that i had is as
below:

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService(name = "FetchService", targetNamespace =
"http://blwb.dnb.com/getGlobalService")
public interface FetchService {
	@WebMethod
	public String getFile(String name);
}


and the pojo class is as below:



import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;

@javax.jws.soap.SOAPBinding(style=javax.jws.soap.SOAPBinding.Style.RPC,
use=javax.jws.soap.SOAPBinding.Use.LITERAL,
parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED)
public class FetchServiceImpl implements FetchService {
	
	@WebMethod 
	public String getFile(String name) {
		//some code here		
		return downloadFilepath;
	}
}
       


My xbean looks like this:

 <jsr181:endpoint 
               service="blwb:FTPInput"
               endpoint="soap"
               pojoClass="com.dnb.blwb.bltwb.FetchServiceImpl"
               serviceInterface="com.dnb.blwb.bltwb.FetchService"
		       style="rpc" 
		       annotations="java5"/>

But i am getting a class cast exception during deployment:

        <component-task-result-details>
                <task-result-details>
                        <task-id>deploy</task-id>
                        <task-result>FAILED</task-result>
                        <message-type>ERROR</message-type>
                        <task-status-msg>
<msg-loc-info>
<loc-token/>
<loc-message>java.lang.ClassCastException: $Proxy53</loc-message>
</msg-loc-info>
</task-status-msg>
                        <exception-info>
                                <nesting-level>1</nesting-level>
                                <msg-loc-info>
                                        <loc-token/>
                                        <loc-message>$Proxy53</loc-message>
                                       
<stack-trace><![CDATA[java.lang.ClassCastException: $Proxy53
        at
sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:223)
        at
sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:213)
        at
sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
        at
sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
        at java.lang.Class.initAnnotationsIfNecessary(Class.java:2998)
        at java.lang.Class.getAnnotation(Class.java:2958)
        at java.lang.Class.isAnnotationPresent(Class.java:2970)
        at
org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations.hasWebServiceAnnotation(Jsr181WebAnnotations.jav
        at
org.codehaus.xfire.annotations.AnnotationServiceFactory.create(AnnotationServiceFactory.java:168)
        at
org.apache.servicemix.jsr181.Jsr181Endpoint.registerService(Jsr181Endpoint.java:301)
        at
org.apache.servicemix.jsr181.Jsr181Endpoint.validate(Jsr181Endpoint.java:216)
        at
org.apache.servicemix.common.AbstractDeployer.validate(AbstractDeployer.java:58)
        at
org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
        at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:92)
        at
org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
        at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
        at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:527)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:334)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:645)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$200(AutoDeploymentService.java:62)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:608)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
]]></stack-trace>



Please help me solving this error.

Thanks,
Sireesh.




Adrian Co wrote:
> 
> Hi,
> 
> Are you using code first development?
> 
> I'm not really sure, but can you try specifying the style in the 
> annotation of the pojo?
> 
> e.g.
> 
> @javax.jws.soap.SOAPBinding(
>      style=javax.jws.soap.SOAPBinding.Style.RPC,
>      use=javax.jws.soap.SOAPBinding.Use.LITERAL,
>      parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED)
> 
> 
> Hope it helps.
> 
> 
> 
> Sireesh wrote:
>> Hi 
>>          The style attribute of jsr181 in service mix is defaulting to
>> document type. When i set the attribute style = "rpc" the wsdl generated
>> is
>> still having soap binding style as "document". 
>>
>> The xbean written looks like :
>>
>>     <jsr181:endpoint 
>>                service="blwb:FTPInput"
>>                endpoint="soap"
>>                pojoClass="com.dnb.blwb.bltwb.FetchServiceImpl"
>>                serviceInterface="com.dnb.blwb.bltwb.FetchService"
>> 		       style="rpc" />  
>>
>> where i mentioned the style as rpc but the wsdl generated shows the
>> following :
>>
>>         <wsdl:binding name="endpointBinding" type="tns:FTPInputPortType">
>>           <wsdlsoap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>> 		<wsdl:operation name="getFile">
>> 			<wsdlsoap:operation soapAction=""/>
>> 			<wsdl:input name="getFileRequest">
>> 				<wsdlsoap:body use="literal"/>
>> 			</wsdl:input>
>> 			<wsdl:output name="getFileResponse">
>> 				<wsdlsoap:body use="literal"/>
>> 			</wsdl:output>
>> 		</wsdl:operation>
>> 	</wsdl:binding>
>>
>>
>> where the soap binding style is still a document type.
>>
>> We need have an rpc binding style as our service should be invoked by
>> jBPM
>> which invokes only rpc types.
>>
>> Can anyone help me on having by service of rpc type.
>>
>>
>>
>> Thanks,
>> Sireesh.
>>   
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/jsr181-style-attribute-defaulting-to-document-type-tf4096617s12049.html#a11662618
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: jsr181 style attribute defaulting to document type

Posted by Adrian Co <ac...@exist.com>.
Hi,

Are you using code first development?

I'm not really sure, but can you try specifying the style in the 
annotation of the pojo?

e.g.

@javax.jws.soap.SOAPBinding(
     style=javax.jws.soap.SOAPBinding.Style.RPC,
     use=javax.jws.soap.SOAPBinding.Use.LITERAL,
     parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED)


Hope it helps.



Sireesh wrote:
> Hi 
>          The style attribute of jsr181 in service mix is defaulting to
> document type. When i set the attribute style = "rpc" the wsdl generated is
> still having soap binding style as "document". 
>
> The xbean written looks like :
>
>     <jsr181:endpoint 
>                service="blwb:FTPInput"
>                endpoint="soap"
>                pojoClass="com.dnb.blwb.bltwb.FetchServiceImpl"
>                serviceInterface="com.dnb.blwb.bltwb.FetchService"
> 		       style="rpc" />  
>
> where i mentioned the style as rpc but the wsdl generated shows the
> following :
>
>         <wsdl:binding name="endpointBinding" type="tns:FTPInputPortType">
>           <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> 		<wsdl:operation name="getFile">
> 			<wsdlsoap:operation soapAction=""/>
> 			<wsdl:input name="getFileRequest">
> 				<wsdlsoap:body use="literal"/>
> 			</wsdl:input>
> 			<wsdl:output name="getFileResponse">
> 				<wsdlsoap:body use="literal"/>
> 			</wsdl:output>
> 		</wsdl:operation>
> 	</wsdl:binding>
>
>
> where the soap binding style is still a document type.
>
> We need have an rpc binding style as our service should be invoked by jBPM
> which invokes only rpc types.
>
> Can anyone help me on having by service of rpc type.
>
>
>
> Thanks,
> Sireesh.
>