You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Alexey Kakunin <ak...@emdev.ru> on 2008/04/28 15:50:53 UTC

Migrting application into Geronimo

Hello! I'm currently working with migrating quite big war-only application (
http://www.emforge.org) to the Geronimo.
We are using Tomcat 5.5/6.0 for development, but already prepared "special"
versions for JBossAS and GlassFis to provide better integration (
http://www.emforge.org/wiki/EmForgeJ2EEIntegration has a little bit more
details).

So, now the turn on Geronimo.

This application is used many dependencies, some of which make sense are:
* JSF-RI 1.2 & Facelets & RichFaces 3.2.0
* Spring 2.5.2
* CXF 2.0.5-incubator.

During trying to run application on GlassFish I met some problems, seems
related to the facts, that Geronimo is used a little bit another versions:
* MyFaces 1.2 (as JSF Implementation)
* Spring 2.0.5
* CXF 2.0.2

But before one general question: how to use some default (I suppose
jdbc/ActiveDS) DataSource in my application?
We need it because by default, we are using build-in file-based HSQL, but in
these "special" pacjkages for J2EE servers we provide some better
integration - for example we are using some default DS as DataSource. It
allows user to start application by simple deploying (without any external
configuration) and avoid from using HSQL (it has some problems).

I read documentation (
http://cwiki.apache.org/GMOxDOC21/deployment-plans.html) and trying to do
like it is described there  - added resource into web.xml:

    <resource-ref>
        <res-ref-name>jdbc/ActiveDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>

And added dependency into geronimo-web.xml (may be it is not correct - but I
tried different ways):


<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
          xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
          xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
          xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">

    <sys:environment>
        <sys:moduleId>
            <sys:groupId>org.emforge</sys:groupId>
            <sys:artifactId>EmForge</sys:artifactId>
            <sys:version>0.23</sys:version>
            <sys:type>war</sys:type>
        </sys:moduleId>

        <sys:hidden-classes>

<sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
           </sys:hidden-classes>

           <sys:dependencies>
            <sys:dependency>
                <sys:groupId>console.dbpool</sys:groupId>
                <sys:artifactId>jdbc%2FActiveDS</sys:artifactId>
            </sys:dependency>
        </sys:dependencies>
    </sys:environment>
    <context-root>/EmForge</context-root>
    <nam:resource-ref>
        <nam:ref-name>jdbc/ActiveDS</nam:ref-name>
        <nam:resource-link>jdbc/ActiveDS</nam:resource-link>
        <nam:pattern>
          <nam:groupId>console.dbpool</nam:groupId>
          <nam:artifactId>jdbc%2FActiveDS</nam:artifactId>
          <nam:name>jdbc/ActiveDS</nam:name>
        </nam:pattern>
    </nam:resource-ref>


But in this case I'm getting error during deployment:

error: cvc-complex-type.2.4a: Expected elements
'non-overridable-classes@http://geronimo.apache.org/xml/ns/deployment-1.2
inverse-classloading@http://geronimo.apache.org/xml/ns/deployment-1.2
suppress-default-environment@http://geronimo.apache.org/xml/ns/deployment-1.2'
instead of 'dependencies@http://geronimo.apache.org/xml/ns/deployment-1.2'
here in element
environment@http://geronimo.apache.org/xml/ns/deployment-1.2

error: cvc-complex-type.2.4b: Element not allowed:
pattern@http://geronimo.apache.org/xml/ns/naming-1.2 in element
resource-ref@http://geronimo.apache.org/xml/ns/naming-1.2



What I'm doing wrong here?


Another question - MyFaces and JSF-RI?
Is it possible to configure somehow my application to use JSF-RI instead of
MyFaces. Problem is - we have some  custom renderers, which implementation
is inherited from com.sun renderers, so - when I'm deploying application
into Geronimo - I'm getting class-not-found error.

Last Question - Implementing Web-Services with using CXF & Spring.
Some services in our application wrapped with CXF-based Web-Services
Implementation. For doing it we have defined in spring context:

    <!-- Load CXF modules from cxf.jar -->
    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

    <!-- Enable message logging using the CXF logging feature -->
    <cxf:bus>
        <cxf:features>
            <cxf:logging/>
        </cxf:features>
    </cxf:bus>


    <!-- Service endpoint -->
    <!-- See http://incubator.apache.org/cxf/faq.html regarding CXF + Spring
AOP -->
    <jaxws:endpoint id="bpmWsService"
            implementorClass="org.emforge.jbpm.BpmServiceImpl"
            implementor="#bpmService"
            address="/org.emforge.BpmService">
        <jaxws:inInterceptors>
            <bean
class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
               <ref bean="wss4jInConfiguration"/>

            <bean
class="ru.emdev.EmForge.security.ValidateUserTokenInterceptor"/>
        </jaxws:inInterceptors>
    </jaxws:endpoint>


But I'm getting followed error during starting application:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error
creating bean with name 'bpmWsService': Unsatisfied dependency expressed
through constructor argument with index 2 of type [java.lang.String]:
Ambiguous constructor argument types - did you specify the correct bean
references as constructor arguments?


I tried both - put org.apache.cxf and org.springframework into
hidden-classes via:
<sys:hidden-classes>
               <sys:filter>org.jaxen</sys:filter>
               <sys:filter>org.springframework</sys:filter>
               <sys:filter>org.apache.cxf</sys:filter>
           </sys:hidden-classes>

But still getting this error.

I tried to hide classes via:
        <sys:hidden-classes>

<sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
           </sys:hidden-classes>

but it is not work at all (I'm starting to get errors related to org.jaxen).

I tried to switch my application to cxf-2.0.2 (since for me it is not so
important which version is used and I like the idea to remove some
dependencies from our war-file to make is smaller) - same effect.
I tried to remove cxf from my war-file libs (so, to use only cxf from
geronimo) - I've got error ClassNotFound on servlet definition:

   <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>
            org.apache.cxf.transport.servlet.CXFServlet
        </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/ws</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/ws/*</url-pattern>
    </servlet-mapping>


I looked into tutorials - but found only tutorial about writting
web-services for Geronimo with using Axis2 - not CXF...


So, really do not know what is a correct way to define CXF-based
web-services in Geronimo. Does anybody has any suggestions.


I will be happy to any help. For us it is really important to add support
for Geronimo - in this case our application with run on all most-important
Open-Source J2EE servers.

-- 
With best regards,
Alexey Kakunin

Re: Migrting application into Geronimo

Posted by Kevan Miller <ke...@gmail.com>.
On Apr 28, 2008, at 9:50 AM, Alexey Kakunin wrote:

> Hello! I'm currently working with migrating quite big war-only  
> application (http://www.emforge.org) to the Geronimo.
> We are using Tomcat 5.5/6.0 for development, but already prepared  
> "special" versions for JBossAS and GlassFis to provide better  
> integration (http://www.emforge.org/wiki/EmForgeJ2EEIntegration has  
> a little bit more details).
>
> So, now the turn on Geronimo.
>
> This application is used many dependencies, some of which make sense  
> are:
> * JSF-RI 1.2 & Facelets & RichFaces 3.2.0
> * Spring 2.5.2
> * CXF 2.0.5-incubator.
>
> During trying to run application on GlassFish I met some problems,  
> seems related to the facts, that Geronimo is used a little bit  
> another versions:
> * MyFaces 1.2 (as JSF Implementation)
> * Spring 2.0.5
> * CXF 2.0.2
>
> But before one general question: how to use some default (I suppose  
> jdbc/ActiveDS) DataSource in my application?
> We need it because by default, we are using build-in file-based  
> HSQL, but in these "special" pacjkages for J2EE servers we provide  
> some better integration - for example we are using some default DS  
> as DataSource. It allows user to start application by simple  
> deploying (without any external configuration) and avoid from using  
> HSQL (it has some problems).
>
> I read documentation (http://cwiki.apache.org/GMOxDOC21/deployment-plans.html 
> ) and trying to do like it is described there  - added resource into  
> web.xml:
>
>     <resource-ref>
>         <res-ref-name>jdbc/ActiveDS</res-ref-name>
>         <res-type>javax.sql.DataSource</res-type>
>         <res-auth>Container</res-auth>
>         <res-sharing-scope>Shareable</res-sharing-scope>
>     </resource-ref>
>
> And added dependency into geronimo-web.xml (may be it is not correct  
> - but I tried different ways):
>
>
> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
>           xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
>           xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
>           xmlns:sys="http://geronimo.apache.org/xml/ns/ 
> deployment-1.2">
>
>     <sys:environment>
>         <sys:moduleId>
>             <sys:groupId>org.emforge</sys:groupId>
>             <sys:artifactId>EmForge</sys:artifactId>
>             <sys:version>0.23</sys:version>
>             <sys:type>war</sys:type>
>         </sys:moduleId>
>
>         <sys:hidden-classes>
>                 
> <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
>            </sys:hidden-classes>
>
>            <sys:dependencies>
>             <sys:dependency>
>                 <sys:groupId>console.dbpool</sys:groupId>
>                 <sys:artifactId>jdbc%2FActiveDS</sys:artifactId>
>             </sys:dependency>
>         </sys:dependencies>
>     </sys:environment>
>     <context-root>/EmForge</context-root>
>     <nam:resource-ref>
>         <nam:ref-name>jdbc/ActiveDS</nam:ref-name>
>         <nam:resource-link>jdbc/ActiveDS</nam:resource-link>
>         <nam:pattern>
>           <nam:groupId>console.dbpool</nam:groupId>
>           <nam:artifactId>jdbc%2FActiveDS</nam:artifactId>
>           <nam:name>jdbc/ActiveDS</nam:name>
>         </nam:pattern>
>     </nam:resource-ref>
>
>
> But in this case I'm getting error during deployment:
>
> error: cvc-complex-type.2.4a: Expected elements 'non-overridable- 
> classes@http://geronimo.apache.org/xml/ns/deployment-1.2 inverse- 
> classloading@http://geronimo.apache.org/xml/ns/deployment-1.2  
> suppress-default-environment@http://geronimo.apache.org/xml/ns/deployment-1.2' 
>  instead of 'dependencies@http://geronimo.apache.org/xml/ns/deployment-1.2' 
>  here in element environment@http://geronimo.apache.org/xml/ns/deployment-1.2
>
>
> error: cvc-complex-type.2.4b: Element not allowed: pattern@http://geronimo.apache.org/xml/ns/naming-1.2 
>  in element resource-ref@http://geronimo.apache.org/xml/ns/naming-1.2
>
>
>
>
> What I'm doing wrong here?

You've got the ordering wrong. Move your <sys:hidden-classes> element  
below your <sys:dependencies>.

Will take a look at your other questions later...

--kevan

Re: Migrting application into Geronimo

Posted by Alexey Kakunin <ak...@emdev.ru>.
Thank you - but really do not think it will help us - since application do
not have ANY JBoss specific code - as I wrote - in our development we are
using Tomcat 5.5 without any J2EE - and everything works


But I will try to look at this tool.

2008/4/28, Ted Kirby <te...@gmail.com>:
>
> The JBoss to Geronimo Migration Tool (J2G) may be of interest/use to
> you.  See
> http://geronimo.apache.org/development-tools.html#DevelopmentTools-J2G.
>
>
> On Mon, Apr 28, 2008 at 9:50 AM, Alexey Kakunin <ak...@emdev.ru> wrote:
> > Hello! I'm currently working with migrating quite big war-only
> application
> > (http://www.emforge.org) to the Geronimo.
> > We are using Tomcat 5.5/6.0 for development, but already prepared
> "special"
> > versions for JBossAS and GlassFis to provide better integration
> > (http://www.emforge.org/wiki/EmForgeJ2EEIntegration has a little bit
> more
> > details).
> >
> > So, now the turn on Geronimo.
> >
> > This application is used many dependencies, some of which make sense
> are:
> > * JSF-RI 1.2 & Facelets & RichFaces 3.2.0
> > * Spring 2.5.2
> > * CXF 2.0.5-incubator.
> >
> > During trying to run application on GlassFish I met some problems, seems
> > related to the facts, that Geronimo is used a little bit another
> versions:
> >  * MyFaces 1.2 (as JSF Implementation)
> > * Spring 2.0.5
> > * CXF 2.0.2
> >
> > But before one general question: how to use some default (I suppose
> > jdbc/ActiveDS) DataSource in my application?
> > We need it because by default, we are using build-in file-based HSQL,
> but in
> > these "special" pacjkages for J2EE servers we provide some better
> > integration - for example we are using some default DS as DataSource. It
> > allows user to start application by simple deploying (without any
> external
> > configuration) and avoid from using HSQL (it has some problems).
> >
> > I read documentation
> > (http://cwiki.apache.org/GMOxDOC21/deployment-plans.html) and trying to
> do
> > like it is described there  - added resource into web.xml:
> >
> >     <resource-ref>
> >         <res-ref-name>jdbc/ActiveDS</res-ref-name>
> >         <res-type>javax.sql.DataSource</res-type>
> >         <res-auth>Container</res-auth>
> >         <res-sharing-scope>Shareable</res-sharing-scope>
> >      </resource-ref>
> >
> > And added dependency into geronimo-web.xml (may be it is not correct -
> but I
> > tried different ways):
> >
> >
> > <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
> >            xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
> >           xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
> >            xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
> >
> >     <sys:environment>
> >         <sys:moduleId>
> >             <sys:groupId>org.emforge</sys:groupId>
> >              <sys:artifactId>EmForge</sys:artifactId>
> >             <sys:version>0.23</sys:version>
> >             <sys:type>war</sys:type>
> >         </sys:moduleId>
> >
> >          <sys:hidden-classes>
> >
> > <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
> >            </sys:hidden-classes>
> >
> >            <sys:dependencies>
> >              <sys:dependency>
> >                 <sys:groupId>console.dbpool</sys:groupId>
> >                 <sys:artifactId>jdbc%2FActiveDS</sys:artifactId>
> >             </sys:dependency>
> >          </sys:dependencies>
> >     </sys:environment>
> >     <context-root>/EmForge</context-root>
> >     <nam:resource-ref>
> >         <nam:ref-name>jdbc/ActiveDS</nam:ref-name>
> >          <nam:resource-link>jdbc/ActiveDS</nam:resource-link>
> >         <nam:pattern>
> >           <nam:groupId>console.dbpool</nam:groupId>
> >           <nam:artifactId>jdbc%2FActiveDS</nam:artifactId>
> >            <nam:name>jdbc/ActiveDS</nam:name>
> >         </nam:pattern>
> >     </nam:resource-ref>
> >
> >
> > But in this case I'm getting error during deployment:
> >
> > error: cvc-complex-type.2.4a: Expected elements
> > 'non-overridable-classes@
> http://geronimo.apache.org/xml/ns/deployment-1.2
> > inverse-classloading@http://geronimo.apache.org/xml/ns/deployment-1.2
> > suppress-default-environment@
> http://geronimo.apache.org/xml/ns/deployment-1.2'
> > instead of 'dependencies@
> http://geronimo.apache.org/xml/ns/deployment-1.2'
> > here in element environment@
> http://geronimo.apache.org/xml/ns/deployment-1.2
> >
> >
> > error: cvc-complex-type.2.4b: Element not allowed:
> > pattern@http://geronimo.apache.org/xml/ns/naming-1.2 in element
> > resource-ref@http://geronimo.apache.org/xml/ns/naming-1.2
> >
> >
> >
> >
> >
> > What I'm doing wrong here?
> >
> >
> > Another question - MyFaces and JSF-RI?
> > Is it possible to configure somehow my application to use JSF-RI instead
> of
> > MyFaces. Problem is - we have some  custom renderers, which
> implementation
> > is inherited from com.sun renderers, so - when I'm deploying application
> > into Geronimo - I'm getting class-not-found error.
> >
> > Last Question - Implementing Web-Services with using CXF & Spring.
> > Some services in our application wrapped with CXF-based Web-Services
> > Implementation. For doing it we have defined in spring context:
> >
> >     <!-- Load CXF modules from cxf.jar -->
> >      <import resource="classpath:META-INF/cxf/cxf.xml" />
> >     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
> >     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> >
> >     <!-- Enable message logging using the CXF logging feature -->
> >     <cxf:bus>
> >         <cxf:features>
> >             <cxf:logging/>
> >         </cxf:features>
> >     </cxf:bus>
> >
> >
> >     <!-- Service endpoint -->
> >     <!-- See http://incubator.apache.org/cxf/faq.html regarding CXF +
> Spring
> > AOP -->
> >     <jaxws:endpoint id="bpmWsService"
> >              implementorClass="org.emforge.jbpm.BpmServiceImpl"
> >             implementor="#bpmService"
> >             address="/org.emforge.BpmService">
> >         <jaxws:inInterceptors>
> >              <bean
> > class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
> >                <ref bean="wss4jInConfiguration"/>
> >
> >             <bean
> > class="ru.emdev.EmForge.security.ValidateUserTokenInterceptor"/>
> >          </jaxws:inInterceptors>
> >     </jaxws:endpoint>
> >
> >
> > But I'm getting followed error during starting application:
> >
> > org.springframework.beans.factory.UnsatisfiedDependencyException: Error
> > creating bean with name 'bpmWsService': Unsatisfied dependency expressed
> > through constructor argument with index 2 of type [java.lang.String]:
> > Ambiguous constructor argument types - did you specify the correct bean
> > references as constructor arguments?
> >
> >
> > I tried both - put org.apache.cxf and org.springframework into
> > hidden-classes via:
> > <sys:hidden-classes>
> >                <sys:filter>org.jaxen</sys:filter>
> >                <sys:filter>org.springframework</sys:filter>
> >                 <sys:filter>org.apache.cxf</sys:filter>
> >            </sys:hidden-classes>
> >
> > But still getting this error.
> >
> > I tried to hide classes via:
> >         <sys:hidden-classes>
> >
> > <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
> >            </sys:hidden-classes>
> >
> > but it is not work at all (I'm starting to get errors related to
> org.jaxen).
> >
> > I tried to switch my application to cxf-2.0.2 (since for me it is not so
> > important which version is used and I like the idea to remove some
> > dependencies from our war-file to make is smaller) - same effect.
> > I tried to remove cxf from my war-file libs (so, to use only cxf from
> > geronimo) - I've got error ClassNotFound on servlet definition:
> >
> >    <servlet>
> >         <servlet-name>CXFServlet</servlet-name>
> >         <servlet-class>
> >             org.apache.cxf.transport.servlet.CXFServlet
> >         </servlet-class>
> >     </servlet>
> >      <servlet-mapping>
> >         <servlet-name>CXFServlet</servlet-name>
> >         <url-pattern>/ws</url-pattern>
> >     </servlet-mapping>
> >     <servlet-mapping>
> >         <servlet-name>CXFServlet</servlet-name>
> >          <url-pattern>/ws/*</url-pattern>
> >     </servlet-mapping>
> >
> >
> > I looked into tutorials - but found only tutorial about writting
> > web-services for Geronimo with using Axis2 - not CXF...
> >
> >
> > So, really do not know what is a correct way to define CXF-based
> > web-services in Geronimo. Does anybody has any suggestions.
> >
> >
> > I will be happy to any help. For us it is really important to add
> support
> > for Geronimo - in this case our application with run on all
> most-important
> > Open-Source J2EE servers.
> >
> > --
> > With best regards,
> > Alexey Kakunin
>



-- 
With best regards,
Alexey Kakunin

Re: Migrting application into Geronimo

Posted by Ted Kirby <te...@gmail.com>.
The JBoss to Geronimo Migration Tool (J2G) may be of interest/use to
you.  See http://geronimo.apache.org/development-tools.html#DevelopmentTools-J2G.

On Mon, Apr 28, 2008 at 9:50 AM, Alexey Kakunin <ak...@emdev.ru> wrote:
> Hello! I'm currently working with migrating quite big war-only application
> (http://www.emforge.org) to the Geronimo.
> We are using Tomcat 5.5/6.0 for development, but already prepared "special"
> versions for JBossAS and GlassFis to provide better integration
> (http://www.emforge.org/wiki/EmForgeJ2EEIntegration has a little bit more
> details).
>
> So, now the turn on Geronimo.
>
> This application is used many dependencies, some of which make sense are:
> * JSF-RI 1.2 & Facelets & RichFaces 3.2.0
> * Spring 2.5.2
> * CXF 2.0.5-incubator.
>
> During trying to run application on GlassFish I met some problems, seems
> related to the facts, that Geronimo is used a little bit another versions:
>  * MyFaces 1.2 (as JSF Implementation)
> * Spring 2.0.5
> * CXF 2.0.2
>
> But before one general question: how to use some default (I suppose
> jdbc/ActiveDS) DataSource in my application?
> We need it because by default, we are using build-in file-based HSQL, but in
> these "special" pacjkages for J2EE servers we provide some better
> integration - for example we are using some default DS as DataSource. It
> allows user to start application by simple deploying (without any external
> configuration) and avoid from using HSQL (it has some problems).
>
> I read documentation
> (http://cwiki.apache.org/GMOxDOC21/deployment-plans.html) and trying to do
> like it is described there  - added resource into web.xml:
>
>     <resource-ref>
>         <res-ref-name>jdbc/ActiveDS</res-ref-name>
>         <res-type>javax.sql.DataSource</res-type>
>         <res-auth>Container</res-auth>
>         <res-sharing-scope>Shareable</res-sharing-scope>
>      </resource-ref>
>
> And added dependency into geronimo-web.xml (may be it is not correct - but I
> tried different ways):
>
>
> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
>            xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
>           xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
>            xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
>
>     <sys:environment>
>         <sys:moduleId>
>             <sys:groupId>org.emforge</sys:groupId>
>              <sys:artifactId>EmForge</sys:artifactId>
>             <sys:version>0.23</sys:version>
>             <sys:type>war</sys:type>
>         </sys:moduleId>
>
>          <sys:hidden-classes>
>
> <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
>            </sys:hidden-classes>
>
>            <sys:dependencies>
>              <sys:dependency>
>                 <sys:groupId>console.dbpool</sys:groupId>
>                 <sys:artifactId>jdbc%2FActiveDS</sys:artifactId>
>             </sys:dependency>
>          </sys:dependencies>
>     </sys:environment>
>     <context-root>/EmForge</context-root>
>     <nam:resource-ref>
>         <nam:ref-name>jdbc/ActiveDS</nam:ref-name>
>          <nam:resource-link>jdbc/ActiveDS</nam:resource-link>
>         <nam:pattern>
>           <nam:groupId>console.dbpool</nam:groupId>
>           <nam:artifactId>jdbc%2FActiveDS</nam:artifactId>
>            <nam:name>jdbc/ActiveDS</nam:name>
>         </nam:pattern>
>     </nam:resource-ref>
>
>
> But in this case I'm getting error during deployment:
>
> error: cvc-complex-type.2.4a: Expected elements
> 'non-overridable-classes@http://geronimo.apache.org/xml/ns/deployment-1.2
> inverse-classloading@http://geronimo.apache.org/xml/ns/deployment-1.2
> suppress-default-environment@http://geronimo.apache.org/xml/ns/deployment-1.2'
> instead of 'dependencies@http://geronimo.apache.org/xml/ns/deployment-1.2'
> here in element environment@http://geronimo.apache.org/xml/ns/deployment-1.2
>
>
> error: cvc-complex-type.2.4b: Element not allowed:
> pattern@http://geronimo.apache.org/xml/ns/naming-1.2 in element
> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.2
>
>
>
>
>
> What I'm doing wrong here?
>
>
> Another question - MyFaces and JSF-RI?
> Is it possible to configure somehow my application to use JSF-RI instead of
> MyFaces. Problem is - we have some  custom renderers, which implementation
> is inherited from com.sun renderers, so - when I'm deploying application
> into Geronimo - I'm getting class-not-found error.
>
> Last Question - Implementing Web-Services with using CXF & Spring.
> Some services in our application wrapped with CXF-based Web-Services
> Implementation. For doing it we have defined in spring context:
>
>     <!-- Load CXF modules from cxf.jar -->
>      <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>
>     <!-- Enable message logging using the CXF logging feature -->
>     <cxf:bus>
>         <cxf:features>
>             <cxf:logging/>
>         </cxf:features>
>     </cxf:bus>
>
>
>     <!-- Service endpoint -->
>     <!-- See http://incubator.apache.org/cxf/faq.html regarding CXF + Spring
> AOP -->
>     <jaxws:endpoint id="bpmWsService"
>              implementorClass="org.emforge.jbpm.BpmServiceImpl"
>             implementor="#bpmService"
>             address="/org.emforge.BpmService">
>         <jaxws:inInterceptors>
>              <bean
> class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
>                <ref bean="wss4jInConfiguration"/>
>
>             <bean
> class="ru.emdev.EmForge.security.ValidateUserTokenInterceptor"/>
>          </jaxws:inInterceptors>
>     </jaxws:endpoint>
>
>
> But I'm getting followed error during starting application:
>
> org.springframework.beans.factory.UnsatisfiedDependencyException: Error
> creating bean with name 'bpmWsService': Unsatisfied dependency expressed
> through constructor argument with index 2 of type [java.lang.String]:
> Ambiguous constructor argument types - did you specify the correct bean
> references as constructor arguments?
>
>
> I tried both - put org.apache.cxf and org.springframework into
> hidden-classes via:
> <sys:hidden-classes>
>                <sys:filter>org.jaxen</sys:filter>
>                <sys:filter>org.springframework</sys:filter>
>                 <sys:filter>org.apache.cxf</sys:filter>
>            </sys:hidden-classes>
>
> But still getting this error.
>
> I tried to hide classes via:
>         <sys:hidden-classes>
>
> <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
>            </sys:hidden-classes>
>
> but it is not work at all (I'm starting to get errors related to org.jaxen).
>
> I tried to switch my application to cxf-2.0.2 (since for me it is not so
> important which version is used and I like the idea to remove some
> dependencies from our war-file to make is smaller) - same effect.
> I tried to remove cxf from my war-file libs (so, to use only cxf from
> geronimo) - I've got error ClassNotFound on servlet definition:
>
>    <servlet>
>         <servlet-name>CXFServlet</servlet-name>
>         <servlet-class>
>             org.apache.cxf.transport.servlet.CXFServlet
>         </servlet-class>
>     </servlet>
>      <servlet-mapping>
>         <servlet-name>CXFServlet</servlet-name>
>         <url-pattern>/ws</url-pattern>
>     </servlet-mapping>
>     <servlet-mapping>
>         <servlet-name>CXFServlet</servlet-name>
>          <url-pattern>/ws/*</url-pattern>
>     </servlet-mapping>
>
>
> I looked into tutorials - but found only tutorial about writting
> web-services for Geronimo with using Axis2 - not CXF...
>
>
> So, really do not know what is a correct way to define CXF-based
> web-services in Geronimo. Does anybody has any suggestions.
>
>
> I will be happy to any help. For us it is really important to add support
> for Geronimo - in this case our application with run on all most-important
> Open-Source J2EE servers.
>
> --
> With best regards,
> Alexey Kakunin

Re: Migrting application into Geronimo

Posted by Alexey Kakunin <ak...@emdev.ru>.
Jarek
thank you very much for advise - but it did not helped :(

Can you explain me why this may help me (probably understanding this I will
able to find some other solution)

Thank you again.

2008/5/5 Jarek Gawor <jg...@gmail.com>:

> Try adding <sys:filter>META-INF/spring</sys:filter> to your
> <sys:hidden-classes> element. That might help with the
> UnsatisfiedDependencyException but I'm not 100% sure.
>
> Jarek
>
> On Mon, Apr 28, 2008 at 9:50 AM, Alexey Kakunin <ak...@emdev.ru> wrote:
> > Hello! I'm currently working with migrating quite big war-only
> application
> > (http://www.emforge.org) to the Geronimo.
> > We are using Tomcat 5.5/6.0 for development, but already prepared
> "special"
> > versions for JBossAS and GlassFis to provide better integration
> > (http://www.emforge.org/wiki/EmForgeJ2EEIntegration has a little bit
> more
> > details).
> >
> > So, now the turn on Geronimo.
> >
> > This application is used many dependencies, some of which make sense
> are:
> > * JSF-RI 1.2 & Facelets & RichFaces 3.2.0
> > * Spring 2.5.2
> > * CXF 2.0.5-incubator.
> >
> > During trying to run application on GlassFish I met some problems, seems
> > related to the facts, that Geronimo is used a little bit another
> versions:
> >  * MyFaces 1.2 (as JSF Implementation)
> > * Spring 2.0.5
> > * CXF 2.0.2
> >
> > But before one general question: how to use some default (I suppose
> > jdbc/ActiveDS) DataSource in my application?
> > We need it because by default, we are using build-in file-based HSQL,
> but in
> > these "special" pacjkages for J2EE servers we provide some better
> > integration - for example we are using some default DS as DataSource. It
> > allows user to start application by simple deploying (without any
> external
> > configuration) and avoid from using HSQL (it has some problems).
> >
> > I read documentation
> > (http://cwiki.apache.org/GMOxDOC21/deployment-plans.html) and trying to
> do
> > like it is described there  - added resource into web.xml:
> >
> >     <resource-ref>
> >         <res-ref-name>jdbc/ActiveDS</res-ref-name>
> >         <res-type>javax.sql.DataSource</res-type>
> >         <res-auth>Container</res-auth>
> >         <res-sharing-scope>Shareable</res-sharing-scope>
> >      </resource-ref>
> >
> > And added dependency into geronimo-web.xml (may be it is not correct -
> but I
> > tried different ways):
> >
> >
> > <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
> >            xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
> >           xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
> >            xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
> >
> >     <sys:environment>
> >         <sys:moduleId>
> >             <sys:groupId>org.emforge</sys:groupId>
> >              <sys:artifactId>EmForge</sys:artifactId>
> >             <sys:version>0.23</sys:version>
> >             <sys:type>war</sys:type>
> >         </sys:moduleId>
> >
> >          <sys:hidden-classes>
> >
> > <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
> >            </sys:hidden-classes>
> >
> >            <sys:dependencies>
> >              <sys:dependency>
> >                 <sys:groupId>console.dbpool</sys:groupId>
> >                 <sys:artifactId>jdbc%2FActiveDS</sys:artifactId>
> >             </sys:dependency>
> >          </sys:dependencies>
> >     </sys:environment>
> >     <context-root>/EmForge</context-root>
> >     <nam:resource-ref>
> >         <nam:ref-name>jdbc/ActiveDS</nam:ref-name>
> >          <nam:resource-link>jdbc/ActiveDS</nam:resource-link>
> >         <nam:pattern>
> >           <nam:groupId>console.dbpool</nam:groupId>
> >           <nam:artifactId>jdbc%2FActiveDS</nam:artifactId>
> >            <nam:name>jdbc/ActiveDS</nam:name>
> >         </nam:pattern>
> >     </nam:resource-ref>
> >
> >
> > But in this case I'm getting error during deployment:
> >
> > error: cvc-complex-type.2.4a: Expected elements
> > 'non-overridable-classes@
> http://geronimo.apache.org/xml/ns/deployment-1.2
> > inverse-classloading@http://geronimo.apache.org/xml/ns/deployment-1.2
> > suppress-default-environment@
> http://geronimo.apache.org/xml/ns/deployment-1.2'
> > instead of 'dependencies@
> http://geronimo.apache.org/xml/ns/deployment-1.2'
> > here in element environment@
> http://geronimo.apache.org/xml/ns/deployment-1.2
> >
> >
> > error: cvc-complex-type.2.4b: Element not allowed:
> > pattern@http://geronimo.apache.org/xml/ns/naming-1.2 in element
> > resource-ref@http://geronimo.apache.org/xml/ns/naming-1.2
> >
> >
> >
> >
> >
> > What I'm doing wrong here?
> >
> >
> > Another question - MyFaces and JSF-RI?
> > Is it possible to configure somehow my application to use JSF-RI instead
> of
> > MyFaces. Problem is - we have some  custom renderers, which
> implementation
> > is inherited from com.sun renderers, so - when I'm deploying application
> > into Geronimo - I'm getting class-not-found error.
> >
> > Last Question - Implementing Web-Services with using CXF & Spring.
> > Some services in our application wrapped with CXF-based Web-Services
> > Implementation. For doing it we have defined in spring context:
> >
> >     <!-- Load CXF modules from cxf.jar -->
> >      <import resource="classpath:META-INF/cxf/cxf.xml" />
> >     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
> >     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> >
> >     <!-- Enable message logging using the CXF logging feature -->
> >     <cxf:bus>
> >         <cxf:features>
> >             <cxf:logging/>
> >         </cxf:features>
> >     </cxf:bus>
> >
> >
> >     <!-- Service endpoint -->
> >     <!-- See http://incubator.apache.org/cxf/faq.html regarding CXF +
> Spring
> > AOP -->
> >     <jaxws:endpoint id="bpmWsService"
> >              implementorClass="org.emforge.jbpm.BpmServiceImpl"
> >             implementor="#bpmService"
> >             address="/org.emforge.BpmService">
> >         <jaxws:inInterceptors>
> >              <bean
> > class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
> >                <ref bean="wss4jInConfiguration"/>
> >
> >             <bean
> > class="ru.emdev.EmForge.security.ValidateUserTokenInterceptor"/>
> >          </jaxws:inInterceptors>
> >     </jaxws:endpoint>
> >
> >
> > But I'm getting followed error during starting application:
> >
> > org.springframework.beans.factory.UnsatisfiedDependencyException: Error
> > creating bean with name 'bpmWsService': Unsatisfied dependency expressed
> > through constructor argument with index 2 of type [java.lang.String]:
> > Ambiguous constructor argument types - did you specify the correct bean
> > references as constructor arguments?
> >
> >
> > I tried both - put org.apache.cxf and org.springframework into
> > hidden-classes via:
> > <sys:hidden-classes>
> >                <sys:filter>org.jaxen</sys:filter>
> >                <sys:filter>org.springframework</sys:filter>
> >                 <sys:filter>org.apache.cxf</sys:filter>
> >            </sys:hidden-classes>
> >
> > But still getting this error.
> >
> > I tried to hide classes via:
> >         <sys:hidden-classes>
> >
> > <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
> >            </sys:hidden-classes>
> >
> > but it is not work at all (I'm starting to get errors related to
> org.jaxen).
> >
> > I tried to switch my application to cxf-2.0.2 (since for me it is not so
> > important which version is used and I like the idea to remove some
> > dependencies from our war-file to make is smaller) - same effect.
> > I tried to remove cxf from my war-file libs (so, to use only cxf from
> > geronimo) - I've got error ClassNotFound on servlet definition:
> >
> >    <servlet>
> >         <servlet-name>CXFServlet</servlet-name>
> >         <servlet-class>
> >             org.apache.cxf.transport.servlet.CXFServlet
> >         </servlet-class>
> >     </servlet>
> >      <servlet-mapping>
> >         <servlet-name>CXFServlet</servlet-name>
> >         <url-pattern>/ws</url-pattern>
> >     </servlet-mapping>
> >     <servlet-mapping>
> >         <servlet-name>CXFServlet</servlet-name>
> >          <url-pattern>/ws/*</url-pattern>
> >     </servlet-mapping>
> >
> >
> > I looked into tutorials - but found only tutorial about writting
> > web-services for Geronimo with using Axis2 - not CXF...
> >
> >
> > So, really do not know what is a correct way to define CXF-based
> > web-services in Geronimo. Does anybody has any suggestions.
> >
> >
> > I will be happy to any help. For us it is really important to add
> support
> > for Geronimo - in this case our application with run on all
> most-important
> > Open-Source J2EE servers.
> >
> > --
> > With best regards,
> > Alexey Kakunin
>



-- 
With best regards,
Alexey Kakunin

Re: Migrting application into Geronimo

Posted by Jarek Gawor <jg...@gmail.com>.
Try adding <sys:filter>META-INF/spring</sys:filter> to your
<sys:hidden-classes> element. That might help with the
UnsatisfiedDependencyException but I'm not 100% sure.

Jarek

On Mon, Apr 28, 2008 at 9:50 AM, Alexey Kakunin <ak...@emdev.ru> wrote:
> Hello! I'm currently working with migrating quite big war-only application
> (http://www.emforge.org) to the Geronimo.
> We are using Tomcat 5.5/6.0 for development, but already prepared "special"
> versions for JBossAS and GlassFis to provide better integration
> (http://www.emforge.org/wiki/EmForgeJ2EEIntegration has a little bit more
> details).
>
> So, now the turn on Geronimo.
>
> This application is used many dependencies, some of which make sense are:
> * JSF-RI 1.2 & Facelets & RichFaces 3.2.0
> * Spring 2.5.2
> * CXF 2.0.5-incubator.
>
> During trying to run application on GlassFish I met some problems, seems
> related to the facts, that Geronimo is used a little bit another versions:
>  * MyFaces 1.2 (as JSF Implementation)
> * Spring 2.0.5
> * CXF 2.0.2
>
> But before one general question: how to use some default (I suppose
> jdbc/ActiveDS) DataSource in my application?
> We need it because by default, we are using build-in file-based HSQL, but in
> these "special" pacjkages for J2EE servers we provide some better
> integration - for example we are using some default DS as DataSource. It
> allows user to start application by simple deploying (without any external
> configuration) and avoid from using HSQL (it has some problems).
>
> I read documentation
> (http://cwiki.apache.org/GMOxDOC21/deployment-plans.html) and trying to do
> like it is described there  - added resource into web.xml:
>
>     <resource-ref>
>         <res-ref-name>jdbc/ActiveDS</res-ref-name>
>         <res-type>javax.sql.DataSource</res-type>
>         <res-auth>Container</res-auth>
>         <res-sharing-scope>Shareable</res-sharing-scope>
>      </resource-ref>
>
> And added dependency into geronimo-web.xml (may be it is not correct - but I
> tried different ways):
>
>
> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
>            xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
>           xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
>            xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
>
>     <sys:environment>
>         <sys:moduleId>
>             <sys:groupId>org.emforge</sys:groupId>
>              <sys:artifactId>EmForge</sys:artifactId>
>             <sys:version>0.23</sys:version>
>             <sys:type>war</sys:type>
>         </sys:moduleId>
>
>          <sys:hidden-classes>
>
> <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
>            </sys:hidden-classes>
>
>            <sys:dependencies>
>              <sys:dependency>
>                 <sys:groupId>console.dbpool</sys:groupId>
>                 <sys:artifactId>jdbc%2FActiveDS</sys:artifactId>
>             </sys:dependency>
>          </sys:dependencies>
>     </sys:environment>
>     <context-root>/EmForge</context-root>
>     <nam:resource-ref>
>         <nam:ref-name>jdbc/ActiveDS</nam:ref-name>
>          <nam:resource-link>jdbc/ActiveDS</nam:resource-link>
>         <nam:pattern>
>           <nam:groupId>console.dbpool</nam:groupId>
>           <nam:artifactId>jdbc%2FActiveDS</nam:artifactId>
>            <nam:name>jdbc/ActiveDS</nam:name>
>         </nam:pattern>
>     </nam:resource-ref>
>
>
> But in this case I'm getting error during deployment:
>
> error: cvc-complex-type.2.4a: Expected elements
> 'non-overridable-classes@http://geronimo.apache.org/xml/ns/deployment-1.2
> inverse-classloading@http://geronimo.apache.org/xml/ns/deployment-1.2
> suppress-default-environment@http://geronimo.apache.org/xml/ns/deployment-1.2'
> instead of 'dependencies@http://geronimo.apache.org/xml/ns/deployment-1.2'
> here in element environment@http://geronimo.apache.org/xml/ns/deployment-1.2
>
>
> error: cvc-complex-type.2.4b: Element not allowed:
> pattern@http://geronimo.apache.org/xml/ns/naming-1.2 in element
> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.2
>
>
>
>
>
> What I'm doing wrong here?
>
>
> Another question - MyFaces and JSF-RI?
> Is it possible to configure somehow my application to use JSF-RI instead of
> MyFaces. Problem is - we have some  custom renderers, which implementation
> is inherited from com.sun renderers, so - when I'm deploying application
> into Geronimo - I'm getting class-not-found error.
>
> Last Question - Implementing Web-Services with using CXF & Spring.
> Some services in our application wrapped with CXF-based Web-Services
> Implementation. For doing it we have defined in spring context:
>
>     <!-- Load CXF modules from cxf.jar -->
>      <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>
>     <!-- Enable message logging using the CXF logging feature -->
>     <cxf:bus>
>         <cxf:features>
>             <cxf:logging/>
>         </cxf:features>
>     </cxf:bus>
>
>
>     <!-- Service endpoint -->
>     <!-- See http://incubator.apache.org/cxf/faq.html regarding CXF + Spring
> AOP -->
>     <jaxws:endpoint id="bpmWsService"
>              implementorClass="org.emforge.jbpm.BpmServiceImpl"
>             implementor="#bpmService"
>             address="/org.emforge.BpmService">
>         <jaxws:inInterceptors>
>              <bean
> class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
>                <ref bean="wss4jInConfiguration"/>
>
>             <bean
> class="ru.emdev.EmForge.security.ValidateUserTokenInterceptor"/>
>          </jaxws:inInterceptors>
>     </jaxws:endpoint>
>
>
> But I'm getting followed error during starting application:
>
> org.springframework.beans.factory.UnsatisfiedDependencyException: Error
> creating bean with name 'bpmWsService': Unsatisfied dependency expressed
> through constructor argument with index 2 of type [java.lang.String]:
> Ambiguous constructor argument types - did you specify the correct bean
> references as constructor arguments?
>
>
> I tried both - put org.apache.cxf and org.springframework into
> hidden-classes via:
> <sys:hidden-classes>
>                <sys:filter>org.jaxen</sys:filter>
>                <sys:filter>org.springframework</sys:filter>
>                 <sys:filter>org.apache.cxf</sys:filter>
>            </sys:hidden-classes>
>
> But still getting this error.
>
> I tried to hide classes via:
>         <sys:hidden-classes>
>
> <sys:filter>org.jaxen,org.springframework,org.apache.cxf</sys:filter>
>            </sys:hidden-classes>
>
> but it is not work at all (I'm starting to get errors related to org.jaxen).
>
> I tried to switch my application to cxf-2.0.2 (since for me it is not so
> important which version is used and I like the idea to remove some
> dependencies from our war-file to make is smaller) - same effect.
> I tried to remove cxf from my war-file libs (so, to use only cxf from
> geronimo) - I've got error ClassNotFound on servlet definition:
>
>    <servlet>
>         <servlet-name>CXFServlet</servlet-name>
>         <servlet-class>
>             org.apache.cxf.transport.servlet.CXFServlet
>         </servlet-class>
>     </servlet>
>      <servlet-mapping>
>         <servlet-name>CXFServlet</servlet-name>
>         <url-pattern>/ws</url-pattern>
>     </servlet-mapping>
>     <servlet-mapping>
>         <servlet-name>CXFServlet</servlet-name>
>          <url-pattern>/ws/*</url-pattern>
>     </servlet-mapping>
>
>
> I looked into tutorials - but found only tutorial about writting
> web-services for Geronimo with using Axis2 - not CXF...
>
>
> So, really do not know what is a correct way to define CXF-based
> web-services in Geronimo. Does anybody has any suggestions.
>
>
> I will be happy to any help. For us it is really important to add support
> for Geronimo - in this case our application with run on all most-important
> Open-Source J2EE servers.
>
> --
> With best regards,
> Alexey Kakunin