On May 5, 2009, at 11:08 AM, Scott Hernandez wrote:

> I'm a little stumped on this one. I'm guessing that there is some kind
> of circular dep. in the classes (EJBs), but where is the question...

I've added a bug report at http://bugs.caucho.com/view.php?id=3480

The circular dependency problem can be a bit tricky internally,  
particularly in combination with EL expressions.  The CanDI spec does  
have some support for circular dependencies, but there's a bit of  
extra work that Resin needs to do to make it work.

-- Scott

>
>
> [09-05-05 10:58:42.741] {main} resin:import
> 'c:\src\caucho\resin\webapps\subetha\WEB-INF\resin-web.xml'
> log4j:WARN No appenders could be found for logger
> (org.subethamail.core.smtp.SMTPService).
> log4j:WARN Please initialize the log4j system properly.
> [09-05-05 10:58:46.286] {main}
> file:/c:/src/caucho/resin/conf/app-default.xml:240:
> com.caucho.config.core.ResinImport.init():
> java.lang.StackOverflowError
> [09-05-05 10:58:46.286] {main}
> [09-05-05 10:58:46.286] {main} 238:   <resin:import
> path="WEB-INF/resin-web-pre.xml" optional="true"/>
> [09-05-05 10:58:46.286] {main} 239:   <resin:import
> path="WEB-INF/web.xml" optional="true"/>
> [09-05-05 10:58:46.286] {main} 240:   <resin:import
> path="WEB-INF/resin-web.xml" optional="true"/>
> [09-05-05 10:58:46.286] {main} 241:   <resin:import
> path="WEB-INF/resin-web-post.xml" optional="true"/>
> [09-05-05 10:58:46.286] {main} 242: </web-app-default>
> [09-05-05 10:58:46.286] {main}
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.config.ConfigContext.error(ConfigContext.java:1309)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho.config.ConfigContext.configureChildNode(ConfigContext.java: 
> 496)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho.config.ConfigContext.configureAttribute(ConfigContext.java: 
> 364)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .config 
> .program.NodeBuilderChildProgram.inject(NodeBuilderChildProgram.java: 
> 71)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho.config.program.ContainerProgram.inject(ContainerProgram.java: 
> 80)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.config.program.ConfigProgram.configure(ConfigProgram.java: 
> 70)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server 
> .deploy 
> .EnvironmentDeployController 
> .configureInstance(EnvironmentDeployController.java:381)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server 
> .deploy 
> .EnvironmentDeployController 
> .configureInstance(EnvironmentDeployController.java:55)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server.deploy.DeployController.startImpl(DeployController.java:676)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server 
> .deploy 
> .StartAutoRedeployAutoStrategy 
> .startOnInit(StartAutoRedeployAutoStrategy.java:72)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server.deploy.DeployController.startOnInit(DeployController.java:549)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.deploy.DeployContainer.start(DeployContainer.java: 
> 160)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho.server.webapp.WebAppContainer.startImpl(WebAppContainer.java: 
> 707)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.host.Host.startImpl(Host.java:496)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.webapp.WebAppContainer.start(WebAppContainer.java: 
> 687)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server.deploy.DeployController.startImpl(DeployController.java:678)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server 
> .deploy 
> .StartAutoRedeployAutoStrategy 
> .startOnInit(StartAutoRedeployAutoStrategy.java:72)
> [09-05-05 10:58:46.286] {main}  at
> com 
> .caucho 
> .server.deploy.DeployController.startOnInit(DeployController.java:549)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.deploy.DeployContainer.start(DeployContainer.java: 
> 160)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.host.HostContainer.start(HostContainer.java:484)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.cluster.Server.start(Server.java:1822)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.resin.Resin.createServer(Resin.java:927)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.resin.Resin.start(Resin.java:998)
> [09-05-05 10:58:46.286] {main}  at
> com.caucho.server.resin.Resin.initMain(Resin.java:1462)
> ...
>
>
>
> Here is the resin-web.xml
> (http://subetha.googlecode.com/svn/branches/resin/web/WEB-INF/resin-web.xml 
> )
>
> <web-app xmlns="http://caucho.com/ns/resin";
>       xmlns:resin="urn:java:com.caucho.resin"
>       xmlns:cfg="urn:java:com.caucho.config"
>       xmlns:jms="urn:java:com.caucho.jms"
>       xmlns:ejb="urn:java:com.caucho.ejb"
>       xmlns:adm="urn:java:org.subethamail.core.admin"
>       xmlns:util="urn:java:org.subethamail.core.util"
>       xmlns:ss="urn:java:org.subethamail.web.security"
>       xmlns:queue="urn:java:org.subethamail.core.queue"
>       >
>
> <logger name="com.caucho.config" level="severe"/>
>
>
> <!--  These (specifically the ResingLogin) seems to cause the injector
> to find multiple matches. Seems to work just letting the class be
> found automatically. -->
> <!--  <ss:ResinLogin/>-->
> <!--  <util:SubEthaAuthenticator/>-->
>
>       <resource
>               mbean-name="subetha:name=Cleanup"
>               type="org.subethamail.core.admin.CleanupBean"
>               mbean-interface="org.subethamail.core.admin.CleanupManagement" 
> />
>
>       <resource
>               mbean-name="subetha:name=SMTPService"
>               type="org.subethamail.core.smtp.SMTPService"
>               mbean-interface="org.subethamail.core.smtp.SMTPManagement" />
>
>       <!-- Run every night at 4am (base 0 below) -->
> <!--  <resin:ScheduledTask>-->
> <!--          <task>-->
> <!--                  <adm:CleanupBean />-->
> <!--          </task>-->
> <!--          <cron>0 3 *</cron>-->
> <!--  </resin:ScheduledTask>-->
>
>       <!-- JMS -->
>       <jms:JmsConnectionFactory />
>
>       <jms:MemoryQueue>
>               <queue:DeliveryQueue/>
>               <Named>delivery</Named>
>       </jms:MemoryQueue>
>
>       <jms:MemoryQueue>
>               <queue:InjectQueue/>
>               <Named>injection</Named>
>       </jms:MemoryQueue>
>
>       <ejb-message-bean  
> class="org.subethamail.core.queue.DeliveryListener">
>               <destination>#{delivery}</destination>
>       </ejb-message-bean>
>
>       <ejb-message-bean class="org.subethamail.core.queue.InjectListener">
>               <destination>#{injection}</destination>
>       </ejb-message-bean>
>
>       <database jndi-name="jdbc/subetha">
>               <ping>true</ping>
>               <ping-interval>0</ping-interval>
>               <ping-query>select 1;</ping-query>
>
>               <driver type="org.postgresql.Driver">
>                       <url>jdbc:postgresql://localhost/subetha</url>
>                       <user>subetha</user>
>                       <password>subetha</password>
>               </driver>
>       </database>
>
>       <ejb-server data-source="jdbc/subetha"
>               validate-database-schema="true" create-database-schema="true" />
> ...
>
>
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest



_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to