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