Could you deploy using "mvn tomcat:deploy" at ejb-sample root?
2010/2/23 Vicky Kak <[email protected] <mailto:[email protected]>>
Looks like changing the properties did the trick however there
seems to be some other eissue due to missing dependency, here is
what I see now
*******************************************************************************************************
23 Feb, 2010 5:20:52 PM org.apache.catalina.startup.HostConfig
deployWAR
INFO: Deploying web application archive ejb-sample.war
context path = /ejb-sample
23 Feb, 2010 5:20:57 PM
org.apache.catalina.loader.WebappClassLoader findResourceInternal
INFO: Illegal access: this web application instance has been
stopped already. Could not load
org/apache/openjpa/util/ImplHelper.class. The eventual following
stack trace is caused by an error thrown for debugging purposes as
well as to attempt to terminate the thread which caused the
illegal access, and has no functional impact.
23 Feb, 2010 5:20:57 PM
org.apache.catalina.loader.WebappClassLoader findResourceInternal
INFO: Illegal access: this web application instance has been
stopped already. Could not load
org/apache/openjpa/util/ImplHelper$1.class. The eventual
following stack trace is caused by an error thrown for debugging
purposes as well as to attempt to terminate the thread which
caused the illegal access, and has no functional impact.
*******************************************************************************************************
-Vicky
Gurkan Erdogdu wrote:
I mean is that I have refactored our resource injection
handling but we do not update our ejb samples. Currently in
ejb-sample/pom.xml it defines resource-plugin but this is not
required anymore.
Moreover,
ejb-samples/META-INF/openwebbeans/openwebbeans.properties must
be updated to include ResourceInjectionService.(currently it
use ResourceService!). After changing, re-try to deploy it
using "mvn clean tomcat:deploy" command as explained in README.
#use resource service
org.apache.webbeans.spi.ResourceInjectionService=org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService
2010/2/23 Vicky Kak <[email protected]
<mailto:[email protected]> <mailto:[email protected]
<mailto:[email protected]>>>
I am not sure what you mean here, I assume that you need to
make
some configurations in Tomat and deploy the sample
application.
Let me know once you perform the tests, I will meanwhile
take a
look at the tomcat logging details.
-Vicky
Gurkan Erdogdu wrote:
Yes that is it.
But we do not try to run samples after changing some
configurations therefore you could get some exceptions.
I will look at in the evening to run ejb samples.
--Gurkan
2010/2/23 Vicky Kak <[email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>> <mailto:[email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>>>
Hi Gurkan,
Thanks for the details.
I have been building the OWB from the trunk and
followed the
readme which is based on M3, the M4 specific readme
is not yet
available.
I did understand that we need the place the common
jars
specific
to jsr330/jsr299 in the $TOMCAT/lib and configure the
openejb in
tomcat.
After this we should be able to deploy the
ejb-sample.war
in the
$TOMCAT/webapps, pretty simple!
Is there anything else I should look from
configuration
perspective?
Here is what I see from the Tomcat console currently
***********************************************************************************************
INFO: Deploying web application archive ejb-sample.war
context path = /ejb-sample
23 Feb, 2010 3:41:09 PM
org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
23 Feb, 2010 3:41:09 PM
org.apache.catalina.core.StandardContext start
SEVERE: Context [/ejb-sample] startup failed due to
previous errors
23 Feb, 2010 3:41:09 PM
org.apache.catalina.loader.WebappClassLoader
findResourceInternal
INFO: Illegal access: this web application instance
has been
stopped already. Could not load
org/apache/openjpa/util/ImplHelper.class. The
eventual
following
stack trace is caused by an error thrown for debugging
purposes as
well as to attempt to terminate the thread which
caused the
illegal access, and has no functional impact.
23 Feb, 2010 3:41:09 PM
org.apache.catalina.loader.WebappClassLoader
findResourceInternal
INFO: Illegal access: this web application instance
has been
stopped already. Could not load
org/apache/openjpa/util/ImplHelper$1.class. The
eventual
following stack trace is caused by an error thrown for
debugging
purposes as well as to attempt to terminate the
thread which
caused the illegal access, and has no functional
impact.
23 Feb, 2010 3:41:09 PM
org.apache.catalina.startup.HostConfig
deployDirectory
***********************************************************************************************
Regards,
Vicky
Gurkan Erdogdu wrote:
Hello Vicky;
Some configuration file names are changed.
README_M3 is a
little bit old with respect to
openwebbeans.properties
content. We have a plan to release M4 this week
that it
contains lots of bug fixes. Therefore instead of
using M3
artifacts, until M4 releases, checkout source
from SVN and
build it yourself.
>>> "atinject-api-1.0.0-incubating-M3.jar....
at-inject.(JSR-330 API).jar and cdi.jar (JSR-299
API)
projects
have moved to geronimo specs. You can download
it from
http://repo1.maven.org/maven2/org/apache/geronimo/specs/
manually or if you use "maven", you can define
dependencies to
them looking at pom content fro there.
Locations :
----------------------------
http://repo1.maven.org/maven2/org/apache/geronimo/specs/geronimo-atinject_1.0_spec/
http://repo1.maven.org/maven2/org/apache/geronimo/specs/geronimo-jcdi_1.0_spec/
You have to add those jars into TOMCAT lib folder.
>>>WEB-INF/lib, I don't understand what does
this mean,
it is
not clear.
It means that some of the libraries (jars) that
OWB
needs are
not contained in Tomcat. You have to manually
add those
jars
into your application WEB-INF/lib. For example,
if you
create
a JSF application, add JSF jars into WEB-INF/lib
with
OWB JSF
plugin. Another example is that OWB needes
validator.jar.
Generally you have to add implementation
jar(webbeans-impl)
and its dependencies to application WEB-INF/lib
except
atinject.jar and cdi.jar. webbeans-impl jar
must be
reside in
WEB-INF/lib folder of the application, not in
TOMCAT/lib folder.
For Configuration:
------------------------
openwebbeans-default.properties does not use EJB
meta-data
discovery as default. To use EJB discovery you
have to
tweak
some properties. Look at
http://svn.apache.org/repos/asf/openwebbeans/trunk/samples/ejb-sample/src/main/resources/META-INF/openwebbeans/openwebbeans.properties.
Moreover, README_M3 talked about resource plugin
that was
responsibe for injecting Java EE resources into
bean (For
example, EntityManager, DataSource etc.). There
is no
ResourcePlugin in current codebase. It has
removed.
Now, there
is a ResourceInjectionService. You have to
configure this
service in openwebbeans.properties to use
OpenEJB resource
injection service instead of default. (Look at
ejb-sample
openwebbeans.properties).
Currently OWB looks for
META-INF/openwebbeans/openwebbeans.properties
files to run
over default configuration properties. If you
have a
JAR that
is located in Tomcat LIB folder that contains
META-INF/openwebbeans/openwebbeans.properties
file, it
is read
by OWB.
One more thing, OWB uses EJB interceptor
(OpenWebBeansEJBInterceptor) to inject
dependencies to EJB
beans. Therefore your every session bean must
have this
interceptor. Again look at samples.
Please look at ejb-sample application for current
configuration.
You can also join us on freenode channel on #IRC
with
#openwebbeans channel.
Thanks;
--Gurkan
2010/2/23 Vicky Kak <[email protected]
<mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>
<mailto:[email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>> <mailto:[email protected]
<mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>
<mailto:[email protected]
<mailto:[email protected]> <mailto:[email protected]
<mailto:[email protected]>>>>>
Vicky Kak wrote:
Hi Folks,
I am in process of testing openwebbean with
Tomcat/openejb, I
did read the related section from the
following docs
https://svn.apache.org/repos/asf/openwebbeans/trunk/readme/README_M3.txt
Here is the section which explains it
********************************************************************************************
EJB Support via Embeddable OpenEJB
Container in
Tomcat 6.X
---------------------------------------------
Configuration Steps:
--------------------------------------------
1* Download Tomcat 6.X version
2* Configure OpenEJB. Look at URL
http://openejb.apache.org/tomcat.html for
installation.
3* Copy
"atinject-api-1.0.0-incubating-M3.jar" to
Tomcat /lib
folder.
4* Copy
"openwebbeans-api-1.0.0-incubating-M3.jar"
5* Look at ejb-sample.war for "WEB-INF/lib"
libraries to
develop custom application.
You can also look at a source of the
project.
********************************************************************************************
"atinject-api-1.0.0-incubating-M3.jar"
does not get
generated
at atinject-tck location, I was expecting
it to be
there. It
is not there, I did pull the CDI api jar
and
dropped it
in the
$TOMCAT_HOME/lib.
"openwebbeans-api-1.0.0-incubating-M3.jar"
should also be
copied to the $TOMCAT/lib, this should be
pointed in the
instructions too.
>>Look at ejb-sample.war for "WEB-INF/lib"
libraries to
develop custom application.
I don't understand what does this mean,
it is
not clear.
********************************************************************************************
How to Develop EJB Applications
---------------------------------------------
1* Add "META-INF/openwebbeans.properties"
into your
application classpath.
2* Add
"org.apache.webbeans.spi.deployer.UseEjbMetaDataDiscoveryService=true"
to use EJB functionality.
So OWB container looks for EJBs.
3* Add
"org.apache.webbeans.resource.spi.ResourceService=org.apache.webbeans.spi.ee.openejb.resource.OpenEjbResourceServiceImpl"
to
use OpenEJB Resource injections.
4* Add "openwebbeans-ejb",
"openwebbeans-resource" and
"openwebbeans-geronimo" plugins into
your web
application
classpath.
It adds EJB, Resource and Open EJB
Resource plugins
into your
application.
5* If you want to use other plugins, add
respective plugins
into your application classpath. For
example, if you
wish to use
JSF framework, you add "openwebbeans-jsf"
plugin.
6* Add OWB related interceptor into your
EJB
Beans. This is
called
"org.apache.webbeans.ejb.interceptor.OpenWebBeansEjbInterceptor"
This is needed for OWB injections.
7* Update your application's "web.xml"
to add
OWB specific
configuration.
---------------------------------------------
********************************************************************************************
Why can't we have this
openwebbeans.properties
as a part of
the jars which we have dropped in
$TOMCAT/lib, it is
not good
idea to configure the classpath for the
Tomcat
and then
start.
I see the default properties file being
here
https://svn.apache.org/repos/asf/openwebbeans/trunk/webbeans-impl/src/main/resources/META-INF/openwebbeans/openwebbeans-default.properties
This does not contain the property
values as
mentioned
in "How
to Develop EJB Applications", I was
thinking of
taking the
same file setting it to the Tomcat CP.
I have been able to configure the openEJB
for Tomcat
and have
not yet followed the instructions to set
the
META-INF/openwebbeans.properties and hence
getting this
error
*******************************************************************************
context path = /ejb-sample
23 Feb, 2010 1:33:28 PM
org.apache.catalina.core.StandardContext
start
SEVERE: Error listenerStart
*******************************************************************************
Before digging more into the code and
finding
the details I
would like to know more from the community.
Regards,
Vicky
-- Gurkan Erdogdu
http://gurkanerdogdu.blogspot.com
-- Gurkan Erdogdu
http://gurkanerdogdu.blogspot.com
-- Gurkan Erdogdu
http://gurkanerdogdu.blogspot.com
--
Gurkan Erdogdu
http://gurkanerdogdu.blogspot.com