On 10/17/07, Ana Belén Antón Gironés <[EMAIL PROTECTED]> wrote: > > Yes, I am using the same .composite file > > Ana Belen > > -----Mensaje original----- > De: Simon Laws [mailto:[EMAIL PROTECTED] > Enviado el: miércoles, 17 de octubre de 2007 13:04 > Para: [email protected] > Asunto: Re: *SPAM*: 06.40/6.0 - Re: How use org.dom4j in my tuscany-sca > component > > On 10/17/07, Ana Belén Antón Gironés <[EMAIL PROTECTED]> wrote: > > > > Thank you very much!! That compiles!!! :-) But it doesn't run :-( . I > > get the same error which I remarked on a previous thread: > > > > ============================================================= > > Buildfile: build.xml > > > > Buildfile: build.xml > > > > run-classes: > > [java] Starting ... > > [java] Information.composite ready > > [java] Exception in thread "main" > > org.osoa.sca.ServiceUnavailableException: No service invoker is > > available for reference default > > (bindingURI=InformationServiceComponent > > operation=getInformationObject). > > [java] at > > > > org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProv > > ider.c > > reateInvoker(RuntimeSCAReferenceBindingProvider.java:192) > > [java] at > > org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addBindingInterce > > ptor > > (R > > untimeWireImpl.java:214) > > [java] at > > org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationCha > > ins > > (Ru > > ntimeWireImpl.java:156) > > [java] at > > org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChai > > ns > > (Run > > timeWireImpl.java:97) > > [java] at > > > > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocat > > ionCha > > in(JDKInvocationHandler.java:190) > > [java] at > > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke > > (JDKInvoca > > tionHandler.java:124) > > [java] at $Proxy5.getInformationObject(Unknown Source) > > [java] at Client.isClient.main(isClient.java:34) > > > > BUILD SUCCESSFUL > > Total time: 1 second > > > > ================================================================ > > > > Best regards. > > > > Ana Belen. > > > > > > > > -----Mensaje original----- > > De: Simon Laws [mailto:[EMAIL PROTECTED] > > Enviado el: miércoles, 17 de octubre de 2007 10:23 > > Para: [email protected] > > Asunto: *SPAM*: 06.40/6.0 - Re: How use org.dom4j in my tuscany-sca > > component > > > > On 10/17/07, Ana Belén Antón Gironés <[EMAIL PROTECTED]> > wrote: > > > > > > Sorry, the success had a short time :-( > > > > > > In one of the classes of my component I use the library dom4j. How > > > do I have to add this library? I added it to C:\TUSCANY\tuscany- > > > sca-1.0-incubating\lib > > > > > > But when I compile, I get the follow error: > > > > > > > > > ==================================================================== > > > == > > > ====== > > > ======== > > > compile: > > > [javac] Compiling 15 source files to > > > C:\TUSCANY\tuscany-sca-1.0-incubating\samples\mypath > > > [javac] > > > C:\TUSCANY\tuscany-sca-1.0-incubating\samples\myclasspath.java:10: > > > package org.dom4j does not exist > > > [javac] import org.dom4j.Attribute; > > > [javac] ^ > > > [javac] > > > C:\TUSCANY\tuscany- sca-1.0-incubating\samples\myclasspath.java:72: > > > cannot find symbol > > > [javac] symbol : class DocumentException > > > [javac] .......... > > > ......... > > > ==================================================================== > > > == > > > ====== > > > > > > =========== > > > > > > Thanks, > > > > > > Ana Belen > > > > > Hi > > > > Interesting one this. > > > > The jar you are using is required by your component implementation so > > it should be part of the contribution, i.e . the set of files that > > comprise the .composite file and the class files that provide > > component implementations. > > > > You see the contribution being added to Tuscany SCA in the client in > > the line that reads. > > > > SCADomain scaDomain = SCADomain.newInstance("Information.composite"); > > > > This is a slightly tricky line but what it is actually saying is look > > for the directory which holds the file Information.composite. Then go > > and load all of the files there. In your sample it should find the > > target/classes directory and so load all of the resources there as > > part of the contribution. > > > > You will of course need to include any new jars on the compile line so > > you can compile you component implementation. If you are using the > > build.xmldiscussed on the previous thread you can adjust the compile > > target. > > > > <target name="compile" depends="init"> > > <javac srcdir="src/main/java" > > destdir="target/classes" > > debug="on" > > source="1.5" > > target="1.5"> > > <classpath> > > <pathelement > > location="../../lib/tuscany-sca-manifest.jar > > "/> > > </classpath> > > </javac> > > > > By adding a new path element pointing at your new jar. > > > > <pathelement location="domedir/mynewjar.jar"/> > > > > I expect you have already done this. This should allow you to compile > it. > > > > Now we come to running the sample. The class loader story in Tuscany > > is being reviewed at the moment it isn't as tidy as it should be (see > > the thread on the developer list). I would imagine in this case that > > the new jar should automatically be made available to the running > > application by virtue of it being included in the contribution. > > However it doesn't work like that at the moment. You should make the > > new jar available on the runtime classpath alongside the compile > > component implementations. Take the run-classes target > > > > <target name="run-classes"> > > <java classname="${test.class}" > > fork="true"> > > <classpath> > > <pathelement path="target/classes"/> > > <pathelement > > location="../../lib/tuscany-sca-manifest.jar > > "/> > > </classpath> > > </java> > > </target> > > > > And add the new pathelement line here also. > > > > <pathelement location="domedir/mynewjar.jar"/> > > > > This all sounds very complicated but the idea is that SCA > > contributions collect together all of the resources that you need to > > run your SCA application, i.e. .composite files, .class files, .jar > > files and allow you simply to add this to the the SCA runtime and have > > it run. This will provide a relatively straightforward mechanism for > > adding applications to Tuscany when the classloader story is sorted out. > > > > Regards > > > > Simon > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > So we are back to the situation where the target service cannot be > found. > I.e. the line in isClient > > InformationService is = scaDomain.getService(InformationService.class, > "InformationServiceComponent"); > > Is returning a proxy but the proxy doesn't point to the component defined > locally as either something went wrong when reading the composite file or > the composite file has change so that "InformationServiceComponent" is not > a > valid component name now. > > Are you still using the sample .composite file with. > > <component name="InformationServiceComponent"> > <implementation.java class=" > eu.services.information.rh.InformationServiceImpl"/> > </component> > > > If so can you flip the implementation back so that it doesn't depend on > the > other jar. It's interesting to see if the dependency is causing a problem > for some reason. It's strange that the output you provided doesn't suggest > that it had a problem loading the composite file if this is the case > though. > > > Regards > > Simon > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED]
Ok let me see if having a dom4j dependency makes my version of the sample fail. Simon
