tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Nash <n...@apache.org>
Subject Re: regards my earlier questions on webapp with multiple composites / components
Date Mon, 11 Apr 2011 19:50:51 GMT
Hi Monosij,
See comments inline.


Monosij Dutta-Roy wrote:
> hi Ant, Simon -
> I wanted to get back to you regards your answers on creating the webapp 
> with multiple components.
> I hope you remember my situation with the webapp running multiple 
> contributions that I contacted you last week about.
> ---------------------------
> As per Ant's suggestion I moved to Tuscany version -- > 2.0-Beta2
> And also updated namespace as: --> 
> xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
> Also should this change to 2.0 or some 
> other? xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
1.1 should be fine.

> However now the basic webapp while deploys in Jetty - gives an error on 
> invocation:
> Problem accessing /qmAppSCA01/. 
> Reason: java.lang.IllegalArgumentException: Business interface 
> org.rd.qm.impl.QueryServiceImpl is not compatible with 
> org.rd.qm.QueryService
> I have not changed the interface and classes at all from my previous 
> version which used to be invoked fine by the JSP. Again this is the 
> basic Tuscany webapp template created by Maven.
> ---------------------------
> I have the @Remotable on the interface org.rd.qm.QueryService as below:
> @Remotable
> public interface QueryService {
> String getPatients();
> }
> and the impl:
> public class QueryServiceImpl implements QueryService {
> public String getPatients() {
> return "Got Patient!";
> }
> }
> ---------------------------
> The qmAppSCA01.composite is attached.
> Again - this basic webapp configuration was working fine in M4 which I 
> was running before. Am I missing something?
I think you may need to add the annotation @Service(QueryService.class)
to the QueryServiceImpl class.  This changed in the OASIS SCA specs
some time ago, and it may be that this change wasn't in 2.0-M4 but is
in 2.0-Beta2.

> ---------------------------
> Also regards my initial queries ANT ELDER wrote:
> There is a way to do this since 2.0-M5 by putting the contributions into 
> a folder name WEB-INF/sca-contributions. There is a sample which 
> demonstrates this that we have just added to the trunk samples, so its 
> pom.xml shows what you need to do, see 
> https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/samples/getting-started/helloworld-webapp/
> -----
> I haven't gotten there yet.
> However SIMON NASH wrote:
> My understanding is that the JSP invokes QueryService correctly, but 
> QueryService can't invoke QueryController because QueryController isn't 
> part of the same webapp.  To fix this, you could expose QueryController 
> using an interoperable binding such as binding.ws <http://binding.ws>, 
> and configure the reference in QueryService to also use binding.ws 
> <http://binding.ws> with an endpoint URI that matches the deployment URI 
> for QueryController. You would also need to use a separate Tuscany 
> domain (not part of the webapp) to load and deploy QueryController.
> In Tuscany 2.x (not 1.x) there is an SCA client API which allows you to 
> invoke SCA services running in a different SCA domain.  This is intended 
> for use from non-SCA code, such as a servlet running in a webapp.  As 
> you are using some SCA code within the webapp (though only as a UI front 
> end) I think it's better to use an interoperable binding to invoke
> QueryController rather than using the SCA client API.
> ---------------------------
> Clarification seeking on which is the way to go - with my interpretation as:
> ANT's statement says that with 2.0-Beta2 I should be able to do multiple 
> components / composites for a webapp as long as I put them in the 
> WEB-INF/sca-contributions folder. So it should work just by putting it 
> there and I intend to try it out as per the example.
> However, I am interpreting SIMON's statement as a best practice - and 
> will be necessary to run the QueryController in a scalable manner such 
> as multiple nodes. So in this approach the QueryController has nothing 
> to do with the webapp but will be invoked by the webapp as needed 
> through the binding.ws <http://binding.ws> - and this leaves me free to 
> change webapp framework / UI without worrying about backend logic.
> However just for now to get things running and make sure configs and 
> such are set correctly I can get by using the approach Ant suggests. 
> However this approach won't be scalable in a way SCA is meant to scale - 
> but will be good for the prototyping phase - including set up 
> db interconnectivity through DAS and such - and then when ready figure 
> out the deployment / scaling aspect in running across multiple nodes put 
> in the ws.bindings and deployment scenarios.
> Please let me know if my interpretation is correct.
> ---------------------------
Yes, that's a very good summary and it's exactly correct.


> Again thanks for all your help and suggestions.
> monosij

View raw message