Question regarding SCADomainFinder
Hi, I'm attempting to perform some testing using some of the distributed features of Tuscany. I have done the following: 1) In one Java main class, started a new domain. 2) In another Java main, started a node that registered a service. I was able to verify the service was working correctly by doing something like: compositeService = node.getDomain().getService(ScopeConversationalService.class, "TestConversationalService"); compositeService.initialize2(); This worked properly. 3) Leaving both the domain and nodes running, I then attempt to use the SCADomainFinder class in another Java main to get a handle to the domain so that I can retrieve the service: SCADomainFinder domainFinder = SCADomainFinder.newInstance(); SCADomain domainProxy = domainFinder.getSCADomain("http://localhost:8877";); compositeService = domainProxy.getService(ScopeConversationalService.class, "TestConversationalService"); However, it always fails with a null pointer exception on the domainProxy.getService call: java.lang.NullPointerException at org.apache.tuscany.sca.node.impl.SCADomainImpl.getServiceReference(SCADo mainImpl.java:417) at org.apache.tuscany.sca.node.impl.SCADomainImpl.getService(SCADomainImpl. java:348) The same error occurs even if I put a bogus port in the for the domain URL (8877 is correct). What my objective in this testing is to determine how I can get a remote handle to the service so that I can invoke it that way in a distributed fashion. I suppose I can always instantiate a new domain locally that has a reference, via one of the bindings to the remote host where the services primarily will reside, but this doesn't seem like the best way of going about things (maybe it is, I'm pretty new to Tuscany, so I'm just trying to get a handle on best practices). jeff - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA & WS Binding Wrapper Style
Simon Laws wrote: [snip] The assumption I'm making from the info you gave is that you want to have two SCA components communicate with the same domain but be able to specify the WSDL that the web services binding uses. I guess what you would need to be able to do is specify a binding something like http://tuscany.apache.org#wsdl.binding(MyServiceSOAP11Binding)"/> etc.. Where you are referencing a WSDL binding but not providing a service location with a view to having the domain sort this out for you. A similar thing would appear on the service end also. This all sounds plausible but I just took a look at the SCA WebServices binding specification and it says that when the #wsdl.binding form is used the endpoint address URI must be provided via the URI attribute on the binding which makes it a little difficult for the domain logic to help you out. There is a possibility that this is a fault in the spec in this case but let me try a few experiments and think about it a little before we call it out. If others know the answer now feel free to jump in. My understanding is that wiring is not limited to the SCA binding. It's probably a bug in the WS binding spec, which should allow the WS endpoint address to be determined through wiring in the domain. In other words the above XML snippet should be made to work. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA & WS Binding Wrapper Style
I found another modification that will have to be done, unless there is alternative, however, this may be related to Javabeans being used for object serialization. In many instances, the parameters or return types of our service methods are java interfaces and there are implementations of these interfaces being created and used. When the XML is created for sending over the binding, it attempts to use the interface as the java class that must be created on the receiving end. The reflection being used can of course not create an instance of the interface and it throws an exception. Is there any way to specific for it to use the actual class implementation when converted to and from XML? Thanks, Bentley -Original Message- From: Simon Nash <[EMAIL PROTECTED]> To: tuscany-user@ws.apache.org Date: Mon, 26 Nov 2007 21:56:55 + Subject: Re: SCA & WS Binding Wrapper Style Bentley, What modifications are needed to your code to make it conform to the doc/lit/wrapped standard? Is this just the removal of overloaded nethod names, or something else? Simon Bentley Johnson wrote: > Hello, thanks for the response and input. > > One thing I realized was that I didn't make clear in my original post was > that I am working with the distributed domain/node system which seems to use > only the SCA binding by default with the Remotable annotation. This does not > allow me to use the WSDL configurations. This assumption is based on the > sample distributed code and testing I have attempted. > > Using the default SCA binding of that configuration seems to always use the > wrapper (document/literal) mode. This is not a large issue, as my code can > be modified to conform to its standards. If there is some other way to have > the services register within the domain that I have not seen, that > information would be appreciated. > > Thanks > > Bentley > > -Original Message- > > From: "Simon Laws" <[EMAIL PROTECTED]> > > To: tuscany-user@ws.apache.org > > Date: Thu, 22 Nov 2007 11:28:24 + > > Subject: Re: SCA & WS Binding Wrapper Style > > > > > Hi Bentley > > > > Some comments/questions below > > > > Regards > > > > Simon > > > > On Nov 21, 2007 7:04 PM, Bentley Johnson <[EMAIL PROTECTED]> wrote: > > > > >>It seems that both the default SCA binding for Remotable Interfaces and > > >>the > > >>basic WS binding are being restricted to the services following the > > >>wrapper > > > > > It certainly use doc/lit/wrapped by default and WSDL generated by Tuscany > > Java2WSDL will use this style. The SCA WebService spec says that, when the > > web services binding points to separately authored WSDL files, it allows > > anything that is valid in the WSDL binding. I can't guarantee that this > > actually works at the moment as I would need to try it but the > > specifications intention is that it is supported. > > > > > >>style. This is being set within the > > >>org.apache.tuscany.sca.binding.ws.axis2.Java2WSDLHelper class in the > > >>createWSDLInterfaceContract method. From my understanding, this implies > > >>that > > >>all methods in the service must have a return type that is not void and > > >>that > > > > > You should be able to have a void return type. There is an itest that shows > > an example ( > > http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/] > [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/]] > > ) > > > > > >>overloaded methods are not allowed. > > > > > Do you mean WSDL operations with the same name but with different > > parameters? > > > > > >>Is there a way to set it to not use the wrapper style or is it just the > > >>standard that is used by the SCA binding and must be followed? > > > > > I think the intention is that any web services communications that go on > > under Tuscany's control, e.g. where the remote version of the SCA binding is > > in use, choose the doc/lit/wrapped style and stick with that. If alternative > > styles are required then this would be configured using a > > separately/manually authored WSDL to describe what style is required. I > > would imagine this would very likely to be the case if SCA is configured to > > talk to web services that are provided by other, non-SCA, systems. Here you > > would expect to be able to get the WSDL from the service provided. Do you > > have a scenario that requires the use of something other than the > > doc/lit/wrapped style in the case that one SCA component is talking to >
Re: SCA & WS Binding Wrapper Style
Simon, Yes, it requires the removal of overloaded methods and I also have to change any java objects to be in a javabean format. Although, this would have to be done either way. Our system had some code which was not conformed to javabean style and since we are now converting to use Tuscany, it must be updated for the java object creation by tuscany. I had thought that the non-void return type was an issue, but I tried the sample mentioned in the previous response and think it should work just fine. There is also a different issue that I have discovered and was going to post about, but I was trying to check the old mailing lists first. I did not find it mentioned there. It seems that the the Transformer classes for converting to and from XML for both simple and javabean styled objects does not handle the inclusion of null values. This includes both passing in a null as a parameter or returning null from a method. Is this a desired/required situation that nulls can not be used? or is it a flaw in the conversion. The one exception where null values do process correctly are null Strings. If this is a requirement, then I would also have to change logic in my system to work around not being able to use null values. This may be problematic. Thanks, Bentley -Original Message- From: Simon Nash <[EMAIL PROTECTED]> To: tuscany-user@ws.apache.org Date: Mon, 26 Nov 2007 21:56:55 + Subject: Re: SCA & WS Binding Wrapper Style Bentley, What modifications are needed to your code to make it conform to the doc/lit/wrapped standard? Is this just the removal of overloaded nethod names, or something else? Simon Bentley Johnson wrote: > Hello, thanks for the response and input. > > One thing I realized was that I didn't make clear in my original post was > that I am working with the distributed domain/node system which seems to use > only the SCA binding by default with the Remotable annotation. This does not > allow me to use the WSDL configurations. This assumption is based on the > sample distributed code and testing I have attempted. > > Using the default SCA binding of that configuration seems to always use the > wrapper (document/literal) mode. This is not a large issue, as my code can > be modified to conform to its standards. If there is some other way to have > the services register within the domain that I have not seen, that > information would be appreciated. > > Thanks > > Bentley > > -Original Message- > > From: "Simon Laws" <[EMAIL PROTECTED]> > > To: tuscany-user@ws.apache.org > > Date: Thu, 22 Nov 2007 11:28:24 + > > Subject: Re: SCA & WS Binding Wrapper Style > > > > > Hi Bentley > > > > Some comments/questions below > > > > Regards > > > > Simon > > > > On Nov 21, 2007 7:04 PM, Bentley Johnson <[EMAIL PROTECTED]> wrote: > > > > >>It seems that both the default SCA binding for Remotable Interfaces and > > >>the > > >>basic WS binding are being restricted to the services following the > > >>wrapper > > > > > It certainly use doc/lit/wrapped by default and WSDL generated by Tuscany > > Java2WSDL will use this style. The SCA WebService spec says that, when the > > web services binding points to separately authored WSDL files, it allows > > anything that is valid in the WSDL binding. I can't guarantee that this > > actually works at the moment as I would need to try it but the > > specifications intention is that it is supported. > > > > > >>style. This is being set within the > > >>org.apache.tuscany.sca.binding.ws.axis2.Java2WSDLHelper class in the > > >>createWSDLInterfaceContract method. From my understanding, this implies > > >>that > > >>all methods in the service must have a return type that is not void and > > >>that > > > > > You should be able to have a void return type. There is an itest that shows > > an example ( > > http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/] > [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/]] > > ) > > > > > >>overloaded methods are not allowed. > > > > > Do you mean WSDL operations with the same name but with different > > parameters? > > > > > >>Is there a way to set it to not use the wrapper style or is it just the > > >>standard that is used by the SCA binding and must be followed? > > > > > I think the intention is that any web services communications that go on > > under Tuscany's control, e.g. where the remote version of the SCA binding is > > in use, choose the doc/lit/wrapped style and stick w
Re: SCA & WS Binding Wrapper Style
Bentley, What modifications are needed to your code to make it conform to the doc/lit/wrapped standard? Is this just the removal of overloaded nethod names, or something else? Simon Bentley Johnson wrote: Hello, thanks for the response and input. One thing I realized was that I didn't make clear in my original post was that I am working with the distributed domain/node system which seems to use only the SCA binding by default with the Remotable annotation. This does not allow me to use the WSDL configurations. This assumption is based on the sample distributed code and testing I have attempted. Using the default SCA binding of that configuration seems to always use the wrapper (document/literal) mode. This is not a large issue, as my code can be modified to conform to its standards. If there is some other way to have the services register within the domain that I have not seen, that information would be appreciated. Thanks Bentley -Original Message- From: "Simon Laws" <[EMAIL PROTECTED]> To: tuscany-user@ws.apache.org Date: Thu, 22 Nov 2007 11:28:24 + Subject: Re: SCA & WS Binding Wrapper Style Hi Bentley Some comments/questions below Regards Simon On Nov 21, 2007 7:04 PM, Bentley Johnson <[EMAIL PROTECTED]> wrote: It seems that both the default SCA binding for Remotable Interfaces and the basic WS binding are being restricted to the services following the wrapper It certainly use doc/lit/wrapped by default and WSDL generated by Tuscany Java2WSDL will use this style. The SCA WebService spec says that, when the web services binding points to separately authored WSDL files, it allows anything that is valid in the WSDL binding. I can't guarantee that this actually works at the moment as I would need to try it but the specifications intention is that it is supported. style. This is being set within the org.apache.tuscany.sca.binding.ws.axis2.Java2WSDLHelper class in the createWSDLInterfaceContract method. From my understanding, this implies that all methods in the service must have a return type that is not void and that You should be able to have a void return type. There is an itest that shows an example ( http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/] ) overloaded methods are not allowed. Do you mean WSDL operations with the same name but with different parameters? Is there a way to set it to not use the wrapper style or is it just the standard that is used by the SCA binding and must be followed? I think the intention is that any web services communications that go on under Tuscany's control, e.g. where the remote version of the SCA binding is in use, choose the doc/lit/wrapped style and stick with that. If alternative styles are required then this would be configured using a separately/manually authored WSDL to describe what style is required. I would imagine this would very likely to be the case if SCA is configured to talk to web services that are provided by other, non-SCA, systems. Here you would expect to be able to get the WSDL from the service provided. Do you have a scenario that requires the use of something other than the doc/lit/wrapped style in the case that one SCA component is talking to another SCA component with the same domain? Thanks -Bentley - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA & WS Binding Wrapper Style
On Nov 26, 2007 8:58 PM, Bentley Johnson <[EMAIL PROTECTED]> wrote: > Hello, thanks for the response and input. > > One thing I realized was that I didn't make clear in my original post was > that I am working with the distributed domain/node system which seems to > use > only the SCA binding by default with the Remotable annotation. This does > not > allow me to use the WSDL configurations. This assumption is based on the > sample distributed code and testing I have attempted. > > Using the default SCA binding of that configuration seems to always use > the > wrapper (document/literal) mode. This is not a large issue, as my code can > be modified to conform to its standards. If there is some other way to > have > the services register within the domain that I have not seen, that > information would be appreciated. > > Thanks > > Bentley > > -Original Message- > > From: "Simon Laws" <[EMAIL PROTECTED]> > > To: tuscany-user@ws.apache.org > > Date: Thu, 22 Nov 2007 11:28:24 + > > Subject: Re: SCA & WS Binding Wrapper Style > > > > > Hi Bentley > > > > Some comments/questions below > > > > Regards > > > > Simon > > > > On Nov 21, 2007 7:04 PM, Bentley Johnson <[EMAIL PROTECTED]> > wrote: > > > > > It seems that both the default SCA binding for Remotable Interfaces and > > > the > > > basic WS binding are being restricted to the services following the > > > wrapper > > > > It certainly use doc/lit/wrapped by default and WSDL generated by Tuscany > > Java2WSDL will use this style. The SCA WebService spec says that, when > the > > web services binding points to separately authored WSDL files, it allows > > anything that is valid in the WSDL binding. I can't guarantee that this > > actually works at the moment as I would need to try it but the > > specifications intention is that it is supported. > > > > > > > > style. This is being set within the > > > org.apache.tuscany.sca.binding.ws.axis2.Java2WSDLHelper class in the > > > createWSDLInterfaceContract method. From my understanding, this implies > > > that > > > all methods in the service must have a return type that is not void and > > > that > > > > You should be able to have a void return type. There is an itest that > shows > > an example ( > > > http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ > [ > http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ > ] > > ) > > > > > > > > overloaded methods are not allowed. > > > > Do you mean WSDL operations with the same name but with different > > parameters? > > > > > > > > Is there a way to set it to not use the wrapper style or is it just the > > > standard that is used by the SCA binding and must be followed? > > > > I think the intention is that any web services communications that go on > > under Tuscany's control, e.g. where the remote version of the SCA binding > is > > in use, choose the doc/lit/wrapped style and stick with that. If > alternative > > styles are required then this would be configured using a > > separately/manually authored WSDL to describe what style is required. I > > would imagine this would very likely to be the case if SCA is configured > to > > talk to web services that are provided by other, non-SCA, systems. Here > you > > would expect to be able to get the WSDL from the service provided. Do you > > have a scenario that requires the use of something other than the > > doc/lit/wrapped style in the case that one SCA component is talking to > > another SCA component with the same domain? > > > > > > > > > > > Thanks > > > > > > -Bentley > > > > > > > > > > > > > > > Hi Bentley Yes, you are right. The mechanism for automatically locating services in a domain and providing the correct wiring endpoints for release 1.0 does rely on using the default SCA binding. When used remotely the default SCA binding relies on web services and generates, on the fly, all the necessary information to make the end to end connections work. This of course involves making some assumptions, one of which is the use of the doc/literal/wrapped style. When you are talking to web services outside of SCA you can of course use binding.ws and specify the WSDL of your choice. Recently I added some code to the node implementation in subversion trunk to make the automatic lookup of node endpoints work for other types of bindings also but it's not well tested yet. I'm currently filling out more of the domain functions and this is one of the parts of the jigsaw which I'm circling back round to complete. The assumption I'm making from the info you gave is that you want to have two SCA components communicate with the same domain but be able to specify the WSDL that the web services binding uses. I guess what you would need to be able to do is specify a binding something like http://tuscany.apache.org#wsdl.binding(MyServiceSOAP11Binding)"/> etc.. Where you are referencing a WSDL b
Re: SCA & WS Binding Wrapper Style
Hello, thanks for the response and input. One thing I realized was that I didn't make clear in my original post was that I am working with the distributed domain/node system which seems to use only the SCA binding by default with the Remotable annotation. This does not allow me to use the WSDL configurations. This assumption is based on the sample distributed code and testing I have attempted. Using the default SCA binding of that configuration seems to always use the wrapper (document/literal) mode. This is not a large issue, as my code can be modified to conform to its standards. If there is some other way to have the services register within the domain that I have not seen, that information would be appreciated. Thanks Bentley -Original Message- From: "Simon Laws" <[EMAIL PROTECTED]> To: tuscany-user@ws.apache.org Date: Thu, 22 Nov 2007 11:28:24 + Subject: Re: SCA & WS Binding Wrapper Style Hi Bentley Some comments/questions below Regards Simon On Nov 21, 2007 7:04 PM, Bentley Johnson <[EMAIL PROTECTED]> wrote: > It seems that both the default SCA binding for Remotable Interfaces and > the > basic WS binding are being restricted to the services following the > wrapper It certainly use doc/lit/wrapped by default and WSDL generated by Tuscany Java2WSDL will use this style. The SCA WebService spec says that, when the web services binding points to separately authored WSDL files, it allows anything that is valid in the WSDL binding. I can't guarantee that this actually works at the moment as I would need to try it but the specifications intention is that it is supported. > > style. This is being set within the > org.apache.tuscany.sca.binding.ws.axis2.Java2WSDLHelper class in the > createWSDLInterfaceContract method. From my understanding, this implies > that > all methods in the service must have a return type that is not void and > that You should be able to have a void return type. There is an itest that shows an example ( http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/ [http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/ws-void-args-return/] ) > > overloaded methods are not allowed. Do you mean WSDL operations with the same name but with different parameters? > > Is there a way to set it to not use the wrapper style or is it just the > standard that is used by the SCA binding and must be followed? I think the intention is that any web services communications that go on under Tuscany's control, e.g. where the remote version of the SCA binding is in use, choose the doc/lit/wrapped style and stick with that. If alternative styles are required then this would be configured using a separately/manually authored WSDL to describe what style is required. I would imagine this would very likely to be the case if SCA is configured to talk to web services that are provided by other, non-SCA, systems. Here you would expect to be able to get the WSDL from the service provided. Do you have a scenario that requires the use of something other than the doc/lit/wrapped style in the case that one SCA component is talking to another SCA component with the same domain? > > > Thanks > > -Bentley > > > >