> -----Ursprüngliche Nachricht-----
> Von: Simon Nash [mailto:[email protected]]
> Gesendet: Mittwoch, 28. November 2012 12:37
> An: [email protected]
> Betreff: Re: Tuscany class loading (was: Re: Using EMF with Tuscany
> 1.6)
>
> ant elder wrote:
> >
> >
> > On Wed, Nov 28, 2012 at 10:12 AM, Simon Nash <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Simon Nash wrote:
> >

[snip]

> >
> >     I tried this and got the following failures in modules and
> samples:
> >
> >     modules/binding-rmi-runtime:
> >
> testRmiService(org.apache.__tuscany.sca.binding.rmi.__BindingTestCase)
> >
> >     modules/binding-ws-axis2:
> >

[snip]

> >       Simon
> >
> >
> > Could you show a stacktrace of one of those fails to see if that
> helps
> > identify the issue?
> >
> Here's the first one:
>
> org.osoa.sca.ServiceRuntimeException: No matching operation for
> sayRmiHi is found in service
> HelloWorldRmiServiceComponent#HelloWorldRmiService
>      at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChai
> ns(RuntimeWireImpl.java:220)
>      at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChain
> s(RuntimeWireImpl.java:118)
>      at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChain
> (RuntimeWireImpl.java:146)
>      at
> org.apache.tuscany.sca.core.assembly.RuntimeComponentServiceImpl.getInv
> ocationChain(RuntimeComponentServiceImpl.java:125)
>      at
> org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvi
> der.getInvoker(RuntimeSCAReferenceBindingProvider.java:200)
>      at
> org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvi
> der.createInvoker(RuntimeSCAReferenceBindingProvider.java:213)
>      at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addReferenceBindin
> gInterceptor(RuntimeWireImpl.java:329)
>      at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChai
> ns(RuntimeWireImpl.java:208)
>      at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChain
> s(RuntimeWireImpl.java:118)
>      at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocati
> onChain(JDKInvocationHandler.java:298)
>      at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKI
> nvocationHandler.java:188)
>      at $Proxy9.sayRmiHello(Unknown Source)
>      at
> org.apache.tuscany.sca.binding.rmi.BindingTestCase.testRmiService(Bindi
> ngTestCase.java:43)
>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>      at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
> va:39)
>      at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
> rImpl.java:25)
>      at java.lang.reflect.Method.invoke(Method.java:597)
>      at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMe
> thod.java:44)
>      at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCalla
> ble.java:15)
>      at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMeth
> od.java:41)
>      at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMetho
> d.java:20)
>      at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.ja
> va:28)
>      at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java
> :31)
>      at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunne
> r.java:73)
>      at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunne
> r.java:46)
>      at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>      at
> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>      at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.ja
> va:28)
>      at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java
> :31)
>      at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>      at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.ja
> va:62)
>      at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestS
> et(AbstractDirectoryTestSuite.java:138)
>      at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Abst
> ractDirectoryTestSuite.java:125)
>      at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>      at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
> va:39)
>      at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
> rImpl.java:25)
>      at java.lang.reflect.Method.invoke(Method.java:597)
>      at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Sure
> fireBooter.java:308)
>      at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.jav
> a:879)

[snip

> >
> >    ...ant
> >

[snip]
>
>    Simon
>

I especially wonder about that failure, because I have deployed the
change in my environment (I can build the modules, although I cannot
get all the tests to run) and saw no such problem, although I use
RMI bindings almost exclusively between my components.

So I rather expect that test to be based on wrong assumptions.

For one thing, I notice the test uses
SCANodeFactory.newInstance().createSCANodeFromClassLoader("RMIBindingTest.composite",
 BindingTestCase.class.getClassLoader());
Perhaps the assumption that this class loader should be able to find the 
composite is
now wrong? Although that really shouldn't be the case.

But if the classes are now loaded by a different classloader (the contribution 
loader instead of
the parent loader), perhaps it is some RMI specific stuff in the test that only 
worked by accident
while everything  was in the same classloader. For example, when my app 
launches a node that makes
components  available via RMI, it sets the java.rmi.server.codebase system 
property. And when it launches
a component that consumes RMI services I set an appropriate  SecurityManager 
that allows the  client to
download classes remotely from that remote URL. Otherwise, I too get 
ClassCastExceptions and operation
lookup failures. That's just how RMI works.

I have no ideas about the failures in the other modules, though.

-- Sebastian
IDS Scheer Consulting GmbH
Geschäftsführer/Managing Directors: Michael Rehm, Ivo Totev
Sitz/Registered office: Altenkesseler Straße 17, 66115 Saarbrücken, Germany - 
Registergericht/Commercial register: Saarbrücken HRB 19681
http://www.ids-scheer-consulting.com

Reply via email to