geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Kakunin" <akaku...@emdev.ru>
Subject Re: CXF + Spring under Geronimo 2.1.1
Date Wed, 25 Jun 2008 10:20:45 GMT
Jarek, thank you!
This helps. Finally I managed to run our application on Geronimo!

2008/6/24 Jarek Gawor <jgawor@gmail.com>:

> Start server with the following property:
>
> export
> JAVA_OPTS=-Dorg.apache.cxf.jaxws.checkPublishEndpointPermission=false
>
> As per spec, app servers are supposed to block publishing new web
> service endpoints via the Endpoint API. This system property will
> disable the check and will allow you to publish a new endpoint.
>
> Jarek
>
> On Tue, Jun 24, 2008 at 3:07 PM, Alexey Kakunin <akakunin@emdev.ru> wrote:
> > Hello again.
> >
> > Periodically I'm returning to this problem again and again - since it
> looks
> > very strange why application.correctly run on most server from Jetty &
> > Tomcat and finishing JBoss and GlassFish - but cannot run on Geronimo.
> >
> > So, playing a little bit more I hope I managed classloader problems, but
> now
> > I cannot create services (CXF + Spring) due to security problems (Stack
> > trace specified below).
> >
> > Does anybody has success experience with using CXF 2.1 & Spring 2.5 under
> > Geronimo 2.1.1?
> >
> > Caused by: java.security.AccessControlException: access denied
> > (javax.xml.ws.WebServicePermission publishEndpoint)
> >     at
> >
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
> >     at
> > java.security.AccessController.checkPermission(AccessController.java:546)
> >     at
> >
> org.apache.cxf.jaxws.EndpointImpl.checkPublishPermission(EndpointImpl.java:375)
> >     at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:241)
> >     at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:194)
> >     at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:380)
> >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >     at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >     at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >     at java.lang.reflect.Method.invoke(Method.java:597)
> >     at
> >
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1412)
> >     at
> >
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1373)
> >     at
> >
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333)
> >     ... 89 more
> >
> > 2008/5/6 Alexey Kakunin <akakunin@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 <jgawor@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 <akakunin@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
> >
> >
> > --
> > With best regards,
> > Alexey Kakunin
>



-- 
With best regards,
Alexey Kakunin

Mime
View raw message