Re[3]: EJB v2 and EJB v3 conflict when deploying .ear

Tero Ripattila <[email protected]> Thu, 6 Jul 2006 22:05:09 +0300
Newsgroups gmane.text.xml.resin.user
Organization Extremia
Message-ID <[email protected]>
Hello Scott,

Thursday, July 6, 2006, 3:48:15 PM, you wrote:
>
>> I think you're just missing a jndi-name
>
>> <ejb-server jndi-name=3D"java:comp/env/cmp">
>> =A0 =A0<config-directory>...</config-directory>
>> </ejb-server>
> =20
> =20

I had a look at Resin's source and noticed that I indeed have a typo in
my config as Resin performs JNDI lookup in the
EnterpriseApplication.java for "java:comp/env/cmp" - not for
"java:comp/env/ejb" as what I was having here.

Anyways, I corrected this typo and still get the same ConfigException,
please see the following:

Resin-3.0.s060705 (built Wed, 05 Jul 2006 07:00:35 PDT)
Copyright(c) 1998-2006 Caucho Technology.  All rights reserved.

Starting Resin on Thu, 06 Jul 2006 22:00:55 +0300 (EEST)

[22:00:57.218] Proxy Cache disk-size=3D1024M memory-size=3D8M
[22:00:57.671] Server[] starting
[22:00:57.671]
[22:00:57.671] Windows XP 5.1 x86
[22:00:57.671] Java 1.5.0_06-b05, 32, mixed mode, Cp1252, fi, Sun Microsyst=
ems Inc.
[22:00:57.671] resin.home =3D C:\Java\resin-pro-3.0.s060705
[22:00:57.671] server.root =3D C:\Java\resin-pro-3.0.s060705
[22:00:57.671]
[snip]
[22:00:58.609] Host[] starting
[22:00:58.796] com.caucho.config.ConfigException: Expected <ejb-server> con=
figured at 'java:comp/env/cmp'
[22:00:58.937] com.caucho.config.ConfigException: Expected <ejb-server> con=
figured at 'java:comp/env/cmp'
[22:00:59.062] com.caucho.config.ConfigException: Expected <ejb-server> con=
figured at 'java:comp/env/cmp'
[22:00:59.109] WebApp[http://localhost:80] starting
[22:01:00.484] WebApp[http://localhost:80/resin-doc] starting
[22:01:00.562] Loaded Socket JNI library.
[22:01:00.578] http listening to *:80
[22:01:00.593] hmux listening to localhost:6800
[22:01:00.593] Resin started in 4047ms
[22:01:08.484] In-place class redefinition (HotSwap) is available.
[22:01:10.171] WebApp[http://localhost:80/hallinta] starting
[22:01:10.593] action: init
[22:01:10.671] Initializing, config=3D'org.apache.struts.util.LocalStrings'=
, returnNull=3Dtrue
[22:01:10.671] Initializing, config=3D'org.apache.struts.action.ActionResou=
rces', returnNull=3Dtrue
[22:01:11.687] Initializing, config=3D'ApplicationResources', returnNull=3D=
true
[22:01:11.750] Loading validation rules file from '/WEB-INF/validator-rules=
.xml'
[22:01:12.421] Tiles definition factory loaded for module ''.
[22:01:12.437] javax.servlet.ServletException: com.caucho.config.ConfigExce=
ption: Expected <ejb-server> configured at 'java:comp/env/cmp'
[22:01:12.437]  at com.caucho.server.dispatch.ExceptionFilterChain.<init>(E=
xceptionFilterChain.java:54)
[22:01:12.437]  at com.caucho.server.webapp.Application.buildInvocation(App=
lication.java:1774)
[22:01:12.437]  at com.caucho.server.webapp.ApplicationContainer.buildInvoc=
ation(ApplicationContainer.java:731)
[22:01:12.437]  at com.caucho.server.host.Host.buildInvocation(Host.java:47=
6)
[22:01:12.437]  at com.caucho.server.host.HostContainer.buildInvocation(Hos=
tContainer.java:350)
[22:01:12.437]  at com.caucho.server.resin.ServletServer.buildInvocation(Se=
rvletServer.java:650)
[22:01:12.437]  at com.caucho.server.dispatch.DispatchServer.buildInvocatio=
n(DispatchServer.java:198)
[22:01:12.437]  at com.caucho.server.http.HttpRequest.handleRequest(HttpReq=
uest.java:263)
[22:01:12.437]  at com.caucho.server.port.TcpConnection.run(TcpConnection.j=
ava:519)
[22:01:12.437]  at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:539)
[22:01:12.437]  at com.caucho.util.ThreadPool.run(ThreadPool.java:465)
[22:01:12.437]  at java.lang.Thread.run(Thread.java:595)
[22:01:12.437] Caused by: com.caucho.config.ConfigException: Expected <ejb-=
server> configured at 'java:comp/env/cmp'
[22:01:12.437]  at com.caucho.server.e_app.EnterpriseApplication.init(Enter=
priseApplication.java:380)
[22:01:12.437]  at com.caucho.server.deploy.EnvironmentDeployController.con=
figureInstance(EnvironmentDeployController.java:446)
[22:01:12.437]  at com.caucho.server.deploy.EnvironmentDeployController.con=
figureInstance(EnvironmentDeployController.java:63)
[22:01:12.437]  at com.caucho.server.deploy.DeployController.startImpl(Depl=
oyController.java:619)
[22:01:12.437]  at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.s=
tartOnInit(StartAutoRedeployAutoStrategy.java:72)
[22:01:12.437]  at com.caucho.server.deploy.DeployController.startOnInit(De=
ployController.java:509)
[22:01:12.437]  at com.caucho.server.deploy.DeployContainer.start(DeployCon=
tainer.java:153)
[22:01:12.437]  at com.caucho.server.webapp.WebAppEarDeployGenerator.start(=
WebAppEarDeployGenerator.java:133)
[22:01:12.437]  at com.caucho.server.deploy.DeployListGenerator.start(Deplo=
yListGenerator.java:173)
[22:01:12.437]  at com.caucho.server.deploy.DeployContainer.start(DeployCon=
tainer.java:134)
[22:01:12.437]  at com.caucho.server.webapp.ApplicationContainer.start(Appl=
icationContainer.java:673)
[22:01:12.437]  at com.caucho.server.host.Host.start(Host.java:437)
[22:01:12.437]  at com.caucho.server.deploy.DeployController.startImpl(Depl=
oyController.java:621)
[22:01:12.437]  at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.s=
tartOnInit(StartAutoRedeployAutoStrategy.java:72)
[22:01:12.437]  at com.caucho.server.deploy.DeployController.startOnInit(De=
ployController.java:509)
[22:01:12.437]  at com.caucho.server.deploy.DeployContainer.start(DeployCon=
tainer.java:153)
[22:01:12.437]  at com.caucho.server.host.HostContainer.start(HostContainer=
.java:501)
[22:01:12.437]  at com.caucho.server.resin.ServletServer.start(ServletServe=
r.java:968)
[22:01:12.437]  at com.caucho.server.deploy.DeployController.startImpl(Depl=
oyController.java:621)
[22:01:12.437]  at com.caucho.server.deploy.AbstractDeployControllerStrateg=
y.start(AbstractDeployControllerStrategy.java:56)
[22:01:12.437]  at com.caucho.server.deploy.DeployController.start(DeployCo=
ntroller.java:517)
[22:01:12.437]  at com.caucho.server.resin.ResinServer.start(ResinServer.ja=
va:530)
[22:01:12.437]  at com.caucho.server.resin.Resin.init(Resin.java)
[22:01:12.437]  at com.caucho.server.resin.Resin.main(Resin.java:624)
[22:01:12.437] Expected <ejb-server> configured at 'java:comp/env/cmp'
[22:01:12.515] resin-file: init

A paste from my resin-web.xml:

<web-app xmlns=3D"http://caucho.com/ns/resin">
  <jndi-link jndi-name=3D"java:comp/env/ejb"
    factory=3D"com.caucho.hessian.HessianContextFactory">
    <init-param java.naming.provider.url=3D'http://localhost:80/hallinta/he=
ssian'/>
  </jndi-link>

  <database>
    <jndi-name>jdbc/foo</jndi-name>
    <driver>
      <type>org.postgresql.Driver</type>
      [snip]
    </driver>
  </database>

  <ejb-server>
    <jndi-name>java:comp/env/cmp</jndi-name>
    <data-source>jdbc/foo</data-source>
    <config-directory>/WEB-INF</config-directory>
  </ejb-server>

  <servlet servlet-name=3D'hessian' servlet-class=3D'com.caucho.hessian.EJB=
Servlet'/>
  <servlet-mapping url-pattern=3D'/hessian/*' servlet-name=3D'hessian'/>

  <allow-servlet-el/>

  <listener>
    <listener-class>com.caucho.jsp.JspPrecompileListener</listener-class>
    <init>
      <extension>jsp</extension>
      <extension>jspx</extension>
    </init>
  </listener>

  <login-config>
  [...]

I continued my googling and found some new interesting hits from
.caucho.com: <http://www.caucho.com/resin-3.0/cmp/ejb-server.xtp> and
<http://www.caucho.com/resin-3.0/cmp/resin-ejb-config.xtp>. These must
be quite new as EJB server's init parameter 'ejb-config-dir' is not
recognized.

-- Tero