You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Jarek Gawor <jg...@gmail.com> on 2008/05/05 18:31:00 UTC

Re: Migrting application into Geronimo

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

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