Hi,

Yes, we do support recursive composites in M2.

As you use "jarLocation" to reference another jar, the code tries to create a URL based on the URL of the current SCDL:

jarUrl = new URL(deploymentContext.getScdlLocation(), jarLocation);
impl.setScdlLocation(new URL("jar:" + jarUrl.toExternalForm() + "!/META-INF/sca/default.scdl"));

Would it be possible that you can debug to dump out the malformed URL? If so, we can better understand what went wrong.

Thanks,
Raymond

----- Original Message ----- From: "Hu hao" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, April 10, 2007 1:45 AM
Subject: Can tuscany M2 support hierarchy structure?


Hi ,

The default.scdl in the application:

<?xml version="1.0" encoding="ASCII"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; name="SCAImplHello">
   <component name="TestComponent">
       <implementation.composite  jarLocation="lib/HelloComposite1.jar"
           name="HelloComposite1" />
       <service name="helloService1" />
   </component>
</composite>

default.scdl in HelloComposite1.jar
<?xml version="1.0" encoding="ASCII"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
   name="HelloComposite1">
   <service multiplicity="0..1" name="helloService1">
       <reference>HelloComponent1</reference>
       <interface.java conversational="false"
           interface="com.ibm.crl.sca.Hello" remotable="false" />
   </service>
   <component name="HelloComponent1">
       <implementation.composite jarLocation="lib/HelloComposite.jar"
           name="HelloComposite" />
       <service name="helloCompositeService" />
   </component>
</composite>

default.scdl in HelloComposite.jar
<?xml version="1.0" encoding="ASCII"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
   name="HelloComposite">
   <service multiplicity="0..1" name="helloCompositeService">
       <reference>HelloComponent</reference>
       <interface.java conversational="false"
           interface="com.ibm.crl.sca.Hello" remotable="false" />
   </service>
   <component name="HelloComponent">
       <implementation.java class="com.ibm.crl.sca.HelloImpl" />
       <service name="helloService" />
   </component>
</composite>

this is the exception throws by tuscany:

org.apache.tuscany.spi.loader.LoaderException:
java.net.MalformedURLException: no !/ in spec
Context stack trace: [Web Application -
SCAImplHello][TestComponent][HelloComponent1]
org.apache.tuscany.runtime.webapp.ServletLauncherInitException:
org.apache.tuscany.spi.loader.LoaderException:
java.net.MalformedURLException: no !/ in spec
Context stack trace: [Web Application -
SCAImplHello][TestComponent][HelloComponent1]
   at org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.initialize(
WebappRuntimeImpl.java:147)
   at
org.apache.tuscany.runtime.webapp.TuscanyContextListener.contextInitialized(
TuscanyContextListener.java:74)
   at org.apache.catalina.core.StandardContext.listenerStart(
StandardContext.java:3729)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4187)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java
:442)
   at org.apache.catalina.core.StandardService.start(StandardService.java
:450)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java
:709)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: org.apache.tuscany.spi.loader.LoaderException:
java.net.MalformedURLException: no !/ in spec
Context stack trace: [Web Application -
SCAImplHello][TestComponent][HelloComponent1]
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:132)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:128)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:70)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:81)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:55)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:109)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:128)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:70)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:81)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:55)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:109)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.deployer.DeployerImpl.load(DeployerImpl.java
:101)
   at org.apache.tuscany.core.deployer.DeployerImpl.deploy(
DeployerImpl.java:76)
at org.apache.tuscany.core.runtime.AbstractRuntime.deployApplicationScdl
(AbstractRuntime.java:136)
   at org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.initialize(
WebappRuntimeImpl.java:138)
   ... 16 more
Caused by: java.net.MalformedURLException: no !/ in spec
   at java.net.URL.<init>(URL.java:601)
   at java.net.URL.<init>(URL.java:464)
   at java.net.URL.<init>(URL.java:413)
   at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:161)
   at java.net.JarURLConnection.<init>(JarURLConnection.java:144)
   at sun.net.www.protocol.jar.JarURLConnection.<init>(
JarURLConnection.java:61)
   at sun.net.www.protocol.jar.Handler.openConnection(Handler.java:24)
   at java.net.URL.openConnection(URL.java:943)
   at java.net.URL.openStream(URL.java:1007)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:102)
   ... 46 more
org.apache.tuscany.runtime.webapp.ServletLauncherInitException:
org.apache.tuscany.spi.loader.LoaderException:
java.net.MalformedURLException: no !/ in spec
Context stack trace: [Web Application -
SCAImplHello][TestComponent][HelloComponent1]
   at org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.initialize(
WebappRuntimeImpl.java:147)
   at
org.apache.tuscany.runtime.webapp.TuscanyContextListener.contextInitialized(
TuscanyContextListener.java:74)
   at org.apache.catalina.core.StandardContext.listenerStart(
StandardContext.java:3729)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4187)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java
:442)
   at org.apache.catalina.core.StandardService.start(StandardService.java
:450)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java
:709)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: org.apache.tuscany.spi.loader.LoaderException:
java.net.MalformedURLException: no !/ in spec
Context stack trace: [Web Application -
SCAImplHello][TestComponent][HelloComponent1]
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:132)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:128)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:70)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:81)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:55)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:109)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:128)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:70)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:81)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:55)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:109)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.deployer.DeployerImpl.load(DeployerImpl.java
:101)
   at org.apache.tuscany.core.deployer.DeployerImpl.deploy(
DeployerImpl.java:76)
at org.apache.tuscany.core.runtime.AbstractRuntime.deployApplicationScdl
(AbstractRuntime.java:136)
   at org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.initialize(
WebappRuntimeImpl.java:138)
   ... 16 more
Caused by: java.net.MalformedURLException: no !/ in spec
   at java.net.URL.<init>(URL.java:601)
   at java.net.URL.<init>(URL.java:464)
   at java.net.URL.<init>(URL.java:413)
   at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:161)
   at java.net.JarURLConnection.<init>(JarURLConnection.java:144)
   at sun.net.www.protocol.jar.JarURLConnection.<init>(
JarURLConnection.java:61)
   at sun.net.www.protocol.jar.Handler.openConnection(Handler.java:24)
   at java.net.URL.openConnection(URL.java:943)
   at java.net.URL.openStream(URL.java:1007)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:102)
   ... 46 more
2007-4-10 16:23:36 org.apache.catalina.core.StandardContext listenerStart
??: Exception sending context initialized event to listener instance of
class org.apache.tuscany.runtime.webapp.TuscanyContextListener
org.apache.tuscany.runtime.webapp.ServletLauncherInitException:
org.apache.tuscany.spi.loader.LoaderException:
java.net.MalformedURLException: no !/ in spec
Context stack trace: [Web Application -
SCAImplHello][TestComponent][HelloComponent1]
   at org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.initialize(
WebappRuntimeImpl.java:147)
   at
org.apache.tuscany.runtime.webapp.TuscanyContextListener.contextInitialized(
TuscanyContextListener.java:74)
   at org.apache.catalina.core.StandardContext.listenerStart(
StandardContext.java:3729)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4187)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java
:442)
   at org.apache.catalina.core.StandardService.start(StandardService.java
:450)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java
:709)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: org.apache.tuscany.spi.loader.LoaderException:
java.net.MalformedURLException: no !/ in spec
Context stack trace: [Web Application -
SCAImplHello][TestComponent][HelloComponent1]
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:132)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:128)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:70)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:81)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:55)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:109)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:128)
   at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:70)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:81)
at org.apache.tuscany.core.implementation.composite.CompositeLoader.load
(CompositeLoader.java:55)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:92)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:109)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
   at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:159)
   at org.apache.tuscany.core.deployer.DeployerImpl.load(DeployerImpl.java
:101)
   at org.apache.tuscany.core.deployer.DeployerImpl.deploy(
DeployerImpl.java:76)
at org.apache.tuscany.core.runtime.AbstractRuntime.deployApplicationScdl
(AbstractRuntime.java:136)
   at org.apache.tuscany.runtime.webapp.WebappRuntimeImpl.initialize(
WebappRuntimeImpl.java:138)
   ... 16 more
Caused by: java.net.MalformedURLException: no !/ in spec
   at java.net.URL.<init>(URL.java:601)
   at java.net.URL.<init>(URL.java:464)
   at java.net.URL.<init>(URL.java:413)
   at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:161)
   at java.net.JarURLConnection.<init>(JarURLConnection.java:144)
   at sun.net.www.protocol.jar.JarURLConnection.<init>(
JarURLConnection.java:61)
   at sun.net.www.protocol.jar.Handler.openConnection(Handler.java:24)
   at java.net.URL.openConnection(URL.java:943)
   at java.net.URL.openStream(URL.java:1007)
   at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:102)
   ... 46 more



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to