M Carissimi created OLINGO-114:
----------------------------------

             Summary: Impossible to run Olingo Provider on Glassfish 3.1.2.2
                 Key: OLINGO-114
                 URL: https://issues.apache.org/jira/browse/OLINGO-114
             Project: Olingo
          Issue Type: Bug
          Components: odata4-producer
    Affects Versions: V2 1.0.0
         Environment: Glassfish 3.1.2.2 and NetBeans 7.3.1 on MacOS 10.7.5
            Reporter: M Carissimi


Hello,
I have created an Olingo Provider which connects to a database using custom 
code and creates the schema/metadata for a set of tables. The provider is 
deployed with a web application configured using the CXFNonSpringJaxrsServlet.

When I run the web application on Tomcat 7.0.34, I am able to successfully 
request the $metadata URL. When I run the web application on Glassfish 3.1.2.2 
(open source edition), I am unable to get the $metadata due to the following 
exception:

{code}
[#|2014-01-09T14:00:17.734+0000|INFO|glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=23;_ThreadName=Thread-4;|ODataPrototypeOlingo
 was successfully deployed in 8,655 milliseconds.|#]

[#|2014-01-09T14:00:51.289+0000|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=26;_ThreadName=Thread-4;|StandardWrapperValve[ResouceNoLinksServlet]:
 PWC1406: Servlet.service() for servlet ResouceNoLinksServlet threw exception
java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: 
javax.ws.rs.core.HttpHeaders.getHeaderString(Ljava/lang/String;)Ljava/lang/String;
        at 
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:331)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:168)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
        at 
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
        at 
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
        at 
com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
        at 
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
        at 
com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
        at 
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
        at 
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        at 
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        at 
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        at 
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        at 
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        at 
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at 
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        at 
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:695)
Caused by: org.apache.cxf.interceptor.Fault: 
javax.ws.rs.core.HttpHeaders.getHeaderString(Ljava/lang/String;)Ljava/lang/String;
        at 
org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)
        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:198)
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:100)
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
        ... 34 more
Caused by: java.lang.NoSuchMethodError: 
javax.ws.rs.core.HttpHeaders.getHeaderString(Ljava/lang/String;)Ljava/lang/String;
        at 
org.apache.olingo.odata2.core.rest.RestUtil.extractRequestContentType(RestUtil.java:83)
        at 
org.apache.olingo.odata2.core.rest.ODataSubLocator.create(ODataSubLocator.java:158)
        at 
org.apache.olingo.odata2.core.rest.ODataRootLocator.handleRequest(ODataRootLocator.java:128)
        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.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
        ... 39 more
|#]
{code}

My web.xml file is as follow
{code}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd";>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <servlet>
        <servlet-name>ResouceNoLinksServlet</servlet-name>
        
<servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            
<param-value>org.apache.olingo.odata2.core.rest.app.ODataApplication</param-value>
        </init-param>
        <init-param>
            <param-name>org.apache.olingo.odata2.service.factory</param-name>
            
<param-value>com.energysys.odata.producer.EnergysysServiceFactory</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ResouceNoLinksServlet</servlet-name>
        <url-pattern>/resourcenolinks.svc/*</url-pattern>
    </servlet-mapping>
    <resource-ref>
        <res-ref-name>jdbc/RecordStoreDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
</web-app>
{code}

My glassfish-web.xml file is as follow
{code}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application 
Server 3.1 Servlet 3.0//EN" 
"http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd";>
<glassfish-web-app error-url="">
  <class-loader delegate="false"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java 
code.</description>
    </property>
  </jsp-config>
</glassfish-web-app>
{code}

My web application WEB-INF/lib directory contains the following JARs (most of 
them taken from your example application 
olingo-odata2-ref-web-incubating-1.0.0.war):
bsf-2.3.0.jar
bsh-2.0b1.jar
com.google.code.gson-gson-2.2.2.jar
commons-cli-1.0.jar
commons-codec-1.6.jar
commons-httpclient-2.0.jar
commons-logging-api-1.1.jar
cxf-api-2.7.5.jar
cxf-rt-bindings-xml-2.7.5.jar
cxf-rt-core-2.7.5.jar
cxf-rt-frontend-jaxrs-2.7.5.jar
cxf-rt-transports-http-2.7.5.jar
eselicense.jar
essd9-9sp3f5.jar
geronimo-javamail_1.4_spec-1.7.1.jar
gson-2.2.2.jar
javax.ws.rs-api-2.0-m10.jar
jaxb-impl-2.2.6.jar
log4j-1.2.17.jar
ojdbc6.jar
org.apache.olingo-olingo-odata2-api-incubating-1.0.0.jar
org.apache.olingo-olingo-odata2-core-incubating-1.0.0.jar
slf4j-api-1.7.1.jar
slf4j-log4j12-1.7.1.jar
stax2-api-3.1.1.jar
woodstox-core-asl-4.2.0.jar
wsdl4j-1.6.3.jar
xbean-1.0.3-es.jar
xmlschema-core-2.0.3.jar
xmlunit-1.0.jar




--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to