java - WebSphere Liberty Server (IBM Bluemix) - error when run the RESTful web-service on server -


i have maven restful web service application (with jax-rs support). api works when run on tomcat v7.0 server. however, error when deploy same project on websphere liberty server, used in bluemix.

when deploy application, loads without problem. able open index.jsp page well. runs of api request calls (usually requests not take input, not produce output. however, of api requests shows error:

launching defaultserver (websphere application server 8.5.5.9/wlp-1.0.12.cl50920160227-1523) on java hotspot(tm) 64-bit server vm, version 1.8.0_60-b27 (en_us) [audit   ] cwwke0001i: server defaultserver has been launched. [audit   ] cwwke0100i: product licensed development, , limited production use. full license terms can viewed here: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/8.5.5.9/lafiles/en.html [audit   ] cwwkz0058i: monitoring dropins applications.  [audit   ] cwwki0001i: corba name server available @ corbaloc:iiop:localhost:2809/nameservice. [audit   ] cwwkt0016i: web application available (default_host): http://localhost:9080/congest/ [audit   ] cwwkz0001i: application congest started in 11.912 seconds. [audit   ] cwwkf0012i: server installed following features: [servlet-3.1, beanvalidation-1.1, ssl-1.0, jndi-1.0, jca-1.7, ejbpersistenttimer-3.2, appsecurity-2.0, j2eemanagement-1.1, jdbc-4.1, wasjmsserver-1.0, jaxrs-2.0, javamail-1.5, cdi-1.2, webprofile-7.0, jcainboundsecurity-1.0, jpa-2.1, jsp-2.3, ejblite-3.2, managedbeans-1.0, jsf-2.2, ejbhome-3.2, jaxws-2.2, localconnector-1.0, jsonp-1.0, el-3.0, jaxrsclient-2.0, concurrent-1.0, appclientsupport-1.0, ejbremote-3.2, javaee-7.0, jaxb-2.2, mdb-3.2, jacc-1.5, batch-1.0, ejb-3.2, json-1.0, jaspic-1.1, distributedmap-1.0, websocket-1.1, wasjmssecurity-1.0, wasjmsclient-2.0]. [audit   ] cwwkf0011i: server defaultserver ready run smarter planet. [error   ] srve0777e: exception thrown application class 'org.glassfish.jersey.servlet.webcomponent.service:419' javax.servlet.servletexception: org.glassfish.jersey.server.containerexception: java.lang.verifyerror: bad type on operand stack exception details:   location:     org/eclipse/persistence/jaxb/compiler/generator.generateschemafiles(ljava/lang/string;ljava/util/map;)ljava/util/hashmap; @90: invokevirtual   reason:     type 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject' (current frame, stack[0]) not assignable 'org/eclipse/persistence/core/sessions/coreproject'   current frame:     bci: @90     flags: { }     locals: { 'org/eclipse/persistence/jaxb/compiler/generator', 'java/lang/string', 'java/util/map', 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject', 'org/eclipse/   persistence/oxm/xmlcontext', 'org/eclipse/persistence/oxm/xmlmarshaller' }     stack: { 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject', 'java/lang/class' }   bytecode:     0x0000000: 2a2c 2ab4 015a b701 862a b401 5c2a b401     0x0000010: 5ab6 0175 2ab4 015a b601 792a b401 5ab6     0x0000020: 017b 2ab4 015a b601 782a b401 5ab6 0176     0x0000030: 2ab4 015a b601 7db6 018d 57bb 00b2 59b7     0x0000040: 016b 4ebb 00be 592d c000 c0b7 0195 3a04     0x0000050: 1904 b601 943a 052d 1202 b601 6ac0 00b1     0x0000060: 3a06 2ab4 015c b601 8a3a 0719 07b9 0198     0x0000070: 0100 3a09 a700 5e19 09b9 019a 0100 c000     0x0000080: 023a 08bb 009c 59bb 00a5 592b b801 62b7     0x0000090: 0164 1201 b601 6519 08b6 016d b601 65b6     0x00000a0: 0163 b701 5e3a 0a19 08b6 0170 3a0b 190b     0x00000b0: 1300 9913 0098 b601 9319 0619 0bb9 01a2     0x00000c0: 0200 1905 1908 bb00 9e59 190a b701 5fb6     0x00000d0: 0196 1909 b901 9901 009a ff9e 2ab4 015c     0x00000e0: b601 8bb0                                 stackmap table:     full_frame(@119,{object[#182],object[#164],object[#170],object[#176],object[#190],object[#191],object[#177],object[#167],top,object[#169]},{})     same_frame_extended(@210)  @ org.glassfish.jersey.servlet.webcomponent.service(webcomponent.java:419) @ org.glassfish.jersey.servlet.servletcontainer.service(servletcontainer.java:381) @ org.glassfish.jersey.servlet.servletcontainer.service(servletcontainer.java:344) @ org.glassfish.jersey.servlet.servletcontainer.service(servletcontainer.java:221) @ com.ibm.ws.webcontainer.servlet.servletwrapper.service(servletwrapper.java:1290) @ [internal classes] caused by: org.glassfish.jersey.server.containerexception: java.lang.verifyerror: bad type on operand stack exception details:   location:     org/eclipse/persistence/jaxb/compiler/generator.generateschemafiles(ljava/lang/string;ljava/util/map;)ljava/util/hashmap; @90: invokevirtual   reason:     type 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject' (current frame, stack[0]) not assignable 'org/eclipse/persistence/core/sessions/coreproject'   current frame:     bci: @90     flags: { }     locals: { 'org/eclipse/persistence/jaxb/compiler/generator', 'java/lang/string', 'java/util/map', 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject', 'org/eclipse/   persistence/oxm/xmlcontext', 'org/eclipse/persistence/oxm/xmlmarshaller' }     stack: { 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject', 'java/lang/class' }   bytecode:     0x0000000: 2a2c 2ab4 015a b701 862a b401 5c2a b401     0x0000010: 5ab6 0175 2ab4 015a b601 792a b401 5ab6     0x0000020: 017b 2ab4 015a b601 782a b401 5ab6 0176     0x0000030: 2ab4 015a b601 7db6 018d 57bb 00b2 59b7     0x0000040: 016b 4ebb 00be 592d c000 c0b7 0195 3a04     0x0000050: 1904 b601 943a 052d 1202 b601 6ac0 00b1     0x0000060: 3a06 2ab4 015c b601 8a3a 0719 07b9 0198     0x0000070: 0100 3a09 a700 5e19 09b9 019a 0100 c000     0x0000080: 023a 08bb 009c 59bb 00a5 592b b801 62b7     0x0000090: 0164 1201 b601 6519 08b6 016d b601 65b6     0x00000a0: 0163 b701 5e3a 0a19 08b6 0170 3a0b 190b     0x00000b0: 1300 9913 0098 b601 9319 0619 0bb9 01a2     0x00000c0: 0200 1905 1908 bb00 9e59 190a b701 5fb6     0x00000d0: 0196 1909 b901 9901 009a ff9e 2ab4 015c     0x00000e0: b601 8bb0                                 stackmap table:     full_frame(@119,{object[#182],object[#164],object[#170],object[#176],object[#190],object[#191],object[#177],object[#167],top,object[#169]},{})     same_frame_extended(@210)  @ org.glassfish.jersey.servlet.internal.responsewriter.rethrow(responsewriter.java:256) @ org.glassfish.jersey.servlet.internal.responsewriter.failure(responsewriter.java:238) @ org.glassfish.jersey.server.serverruntime$responder.process(serverruntime.java:480) @ org.glassfish.jersey.server.serverruntime$2.run(serverruntime.java:311) @ org.glassfish.jersey.internal.errors$1.call(errors.java:271) @ org.glassfish.jersey.internal.errors$1.call(errors.java:267) @ org.glassfish.jersey.internal.errors.process(errors.java:315) @ org.glassfish.jersey.internal.errors.process(errors.java:297) @ org.glassfish.jersey.internal.errors.process(errors.java:267) @ org.glassfish.jersey.process.internal.requestscope.runinscope(requestscope.java:317) @ org.glassfish.jersey.server.serverruntime.process(serverruntime.java:286) @ org.glassfish.jersey.server.applicationhandler.handle(applicationhandler.java:1072) @ org.glassfish.jersey.servlet.webcomponent.service(webcomponent.java:399) ... 5 more caused by: java.lang.verifyerror: bad type on operand stack exception details:   location:     org/eclipse/persistence/jaxb/compiler/generator.generateschemafiles(ljava/lang/string;ljava/util/map;)ljava/util/hashmap; @90: invokevirtual   reason:     type 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject' (current frame, stack[0]) not assignable 'org/eclipse/persistence/core/sessions/coreproject'   current frame:     bci: @90     flags: { }     locals: { 'org/eclipse/persistence/jaxb/compiler/generator', 'java/lang/string', 'java/util/map', 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject', 'org/eclipse/   persistence/oxm/xmlcontext', 'org/eclipse/persistence/oxm/xmlmarshaller' }     stack: { 'org/eclipse/persistence/internal/oxm/schema/schemamodelproject', 'java/lang/class' }   bytecode:     0x0000000: 2a2c 2ab4 015a b701 862a b401 5c2a b401     0x0000010: 5ab6 0175 2ab4 015a b601 792a b401 5ab6     0x0000020: 017b 2ab4 015a b601 782a b401 5ab6 0176     0x0000030: 2ab4 015a b601 7db6 018d 57bb 00b2 59b7     0x0000040: 016b 4ebb 00be 592d c000 c0b7 0195 3a04     0x0000050: 1904 b601 943a 052d 1202 b601 6ac0 00b1     0x0000060: 3a06 2ab4 015c b601 8a3a 0719 07b9 0198     0x0000070: 0100 3a09 a700 5e19 09b9 019a 0100 c000     0x0000080: 023a 08bb 009c 59bb 00a5 592b b801 62b7     0x0000090: 0164 1201 b601 6519 08b6 016d b601 65b6     0x00000a0: 0163 b701 5e3a 0a19 08b6 0170 3a0b 190b     0x00000b0: 1300 9913 0098 b601 9319 0619 0bb9 01a2     0x00000c0: 0200 1905 1908 bb00 9e59 190a b701 5fb6     0x00000d0: 0196 1909 b901 9901 009a ff9e 2ab4 015c     0x00000e0: b601 8bb0                                 stackmap table:     full_frame(@119,{object[#182],object[#164],object[#170],object[#176],object[#190],object[#191],object[#177],object[#167],top,object[#169]},{})     same_frame_extended(@210)  @ org.eclipse.persistence.jaxb.jaxbcontext$typemappinginfoinput.createcontextstate(jaxbcontext.java:1017) @ org.eclipse.persistence.jaxb.jaxbcontext.<init>(jaxbcontext.java:174) @ org.eclipse.persistence.jaxb.jaxbcontextfactory.createcontext(jaxbcontextfactory.java:165) @ org.eclipse.persistence.jaxb.jaxbcontextfactory.createcontext(jaxbcontextfactory.java:152) @ org.eclipse.persistence.jaxb.jaxbcontextfactory.createcontext(jaxbcontextfactory.java:112) @ org.eclipse.persistence.jaxb.jaxbcontextfactory.createcontext(jaxbcontextfactory.java:102) @ org.eclipse.persistence.jaxb.rs.moxyjsonprovider.getjaxbcontext(moxyjsonprovider.java:302) @ org.eclipse.persistence.jaxb.rs.moxyjsonprovider.readfrom(moxyjsonprovider.java:557) @ org.glassfish.jersey.message.internal.readerinterceptorexecutor$terminalreaderinterceptor.invokereadfrom(readerinterceptorexecutor.java:259) @ org.glassfish.jersey.message.internal.readerinterceptorexecutor$terminalreaderinterceptor.aroundreadfrom(readerinterceptorexecutor.java:235) @ org.glassfish.jersey.message.internal.readerinterceptorexecutor.proceed(readerinterceptorexecutor.java:155) @ org.glassfish.jersey.server.internal.mappableexceptionwrapperinterceptor.aroundreadfrom(mappableexceptionwrapperinterceptor.java:74) @ org.glassfish.jersey.message.internal.readerinterceptorexecutor.proceed(readerinterceptorexecutor.java:155) @ org.glassfish.jersey.message.internal.messagebodyfactory.readfrom(messagebodyfactory.java:1075) @ org.glassfish.jersey.message.internal.inboundmessagecontext.readentity(inboundmessagecontext.java:853) @ org.glassfish.jersey.server.containerrequest.readentity(containerrequest.java:270) @ org.glassfish.jersey.server.internal.inject.entityparamvaluefactoryprovider$entityvaluefactory.provide(entityparamvaluefactoryprovider.java:96) @ org.glassfish.jersey.server.spi.internal.parametervaluehelper.getparametervalues(parametervaluehelper.java:81) @ org.glassfish.jersey.server.model.internal.javaresourcemethoddispatcherprovider$abstractmethodparaminvoker.getparamvalues(javaresourcemethoddispatcherprovider.java:125) @ org.glassfish.jersey.server.model.internal.javaresourcemethoddispatcherprovider$typeoutinvoker.dodispatch(javaresourcemethoddispatcherprovider.java:203) @ org.glassfish.jersey.server.model.internal.abstractjavaresourcemethoddispatcher.dispatch(abstractjavaresourcemethoddispatcher.java:97) @ org.glassfish.jersey.server.model.resourcemethodinvoker.invoke(resourcemethodinvoker.java:389) @ org.glassfish.jersey.server.model.resourcemethodinvoker.apply(resourcemethodinvoker.java:347) @ org.glassfish.jersey.server.model.resourcemethodinvoker.apply(resourcemethodinvoker.java:102) @ org.glassfish.jersey.server.serverruntime$2.run(serverruntime.java:303) ... 14 more  ... ... ... 

i can't figure out problem. searched in google , realized problem (verifyerror) might happen if compile time environment different runtime environment. however, can't figure out.

here pom.xml file:

<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelversion>4.0.0</modelversion>  <groupid>vanet</groupid> <artifactid>congest</artifactid> <packaging>war</packaging> <version>0.0.1-snapshot</version> <name>congest</name>  <build>     <finalname>congest</finalname>     <plugins>         <plugin>             <groupid>org.apache.maven.plugins</groupid>             <artifactid>maven-compiler-plugin</artifactid>             <version>2.5.1</version>             <inherited>true</inherited>             <configuration>                 <source>1.7</source>                 <target>1.7</target>             </configuration>         </plugin>     </plugins> </build>   <dependencymanagement>     <dependencies>         <dependency>             <groupid>org.glassfish.jersey</groupid>             <artifactid>jersey-bom</artifactid>             <version>${jersey.version}</version>             <type>pom</type>             <scope>import</scope>         </dependency>     </dependencies> </dependencymanagement>  <dependencies> <dependency>     <groupid>org.glassfish.jersey.containers</groupid>     <artifactid>jersey-container-servlet-core</artifactid>     <!-- use following artifactid if don't need servlet 2.x compatibility -->     <!-- <artifactid>jersey-container-servlet</artifactid> --> </dependency> <!-- uncomment json support --> <dependency>     <groupid>org.glassfish.jersey.media</groupid>     <artifactid>jersey-media-moxy</artifactid>   </dependency> <dependency>     <groupid>mysql</groupid>     <artifactid>mysql-connector-java</artifactid>     <version>5.1.6</version> </dependency> <dependency>     <groupid>net.sourceforge.jfuzzylogic</groupid>     <artifactid>jfuzzylogic</artifactid>     <version>1.2.1</version> </dependency> <dependency>     <groupid>javax.servlet</groupid>     <artifactid>javax.servlet-api</artifactid>     <version>3.1.0</version>     <scope>provided</scope> </dependency>  </dependencies>    <properties>     <jersey.version>2.16</jersey.version>     <project.build.sourceencoding>utf-8</project.build.sourceencoding> </properties> </project> 

this file web.xml file. if want remove jersey implementation, should replace in file?

<web-app version="2.5" 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_2_5.xsd"> <servlet>     <servlet-name>jersey web application</servlet-name>     <servlet-class>org.glassfish.jersey.servlet.servletcontainer</servlet-class>     <init-param>         <param-name>jersey.config.server.provider.packages</param-name>         <param-value>vanet.congest</param-value>     </init-param>     <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>     <servlet-name>jersey web application</servlet-name>     <url-pattern>/webapi/*</url-pattern> </servlet-mapping> </web-app> 

update

i have made following changes , still getting error.

-web.xml:     <servlet>         <servlet-name>jax-rs servlet</servlet-name>         <servlet-class>com.ibm.websphere.jaxrs.server.ibmrestservlet</servlet-class>         <init-param>             <param-name>javax.ws.rs.core.application</param-name>             <param-value>vanet.congest</param-value>         </init-param>         <load-on-startup>1</load-on-startup>     </servlet>     <servlet-mapping>         <servlet-name>jax-rs servlet</servlet-name>         <url-pattern>/webapi/*</url-pattern>     </servlet-mapping> 

-pom.xml

   <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">      <modelversion>4.0.0</modelversion>      <groupid>vanet</groupid>     <artifactid>congest</artifactid>     <packaging>war</packaging>     <version>0.0.1-snapshot</version>     <name>congest</name>      <build>         <finalname>congest</finalname>         <plugins>             <plugin>                 <groupid>org.apache.maven.plugins</groupid>                 <artifactid>maven-compiler-plugin</artifactid>                 <version>2.5.1</version>                 <inherited>true</inherited>                 <configuration>                     <source>1.7</source>                     <target>1.7</target>                 </configuration>             </plugin>         </plugins>     </build>        <dependencies>     <dependency>         <groupid>mysql</groupid>         <artifactid>mysql-connector-java</artifactid>         <version>5.1.6</version>     </dependency>     <dependency>         <groupid>net.sourceforge.jfuzzylogic</groupid>         <artifactid>jfuzzylogic</artifactid>         <version>1.2.1</version>     </dependency>      <dependency>         <groupid>javax.servlet</groupid>         <artifactid>javax.servlet-api</artifactid>         <version>3.1.0</version>         <scope>provided</scope>     </dependency>     <dependency>         <groupid>javax</groupid>         <artifactid>javaee-api</artifactid>         <version>7.0</version>         <scope>provided</scope>     </dependency>     <dependency>         <groupid>com.ibm.websphere.appserver.api</groupid>         <artifactid>com.ibm.websphere.appserver.api.jaxrs</artifactid>         <version>1.0.10</version>     </dependency>     </dependencies>        <properties>         <project.build.sourceencoding>utf8</project.build.sourceencoding>     </properties>      </project> 

but getting error when make request api. mistake?

[audit   ] cwwkf0012i: server installed following features: [servlet-3.1, beanvalidation-1.1, ssl-1.0, jndi-1.0, jca-1.7, ejbpersistenttimer-3.2, appsecurity-2.0, j2eemanagement-1.1, jdbc-4.1, wasjmsserver-1.0, jaxrs-2.0, javamail-1.5, cdi-1.2, webprofile-7.0, jcainboundsecurity-1.0, jpa-2.1, jsp-2.3, ejblite-3.2, managedbeans-1.0, jsf-2.2, ejbhome-3.2, jaxws-2.2, localconnector-1.0, jsonp-1.0, el-3.0, jaxrsclient-2.0, concurrent-1.0, appclientsupport-1.0, ejbremote-3.2, javaee-7.0, jaxb-2.2, mdb-3.2, jacc-1.5, batch-1.0, ejb-3.2, json-1.0, jaspic-1.1, distributedmap-1.0, websocket-1.1, wasjmssecurity-1.0, wasjmsclient-2.0]. [audit   ] cwwkf0011i: server defaultserver ready run smarter planet. [error   ] srve0276e: error while initializing servlet [jax-rs servlet]: javax.servlet.unavailableexception: srve0203e: servlet [jax-rs servlet]: com.ibm.websphere.jaxrs.server.ibmrestservlet found, missing required class. srve0206e: error typically implies servlet compiled classes cannot located server. srve0187e: check class path ensure classes required servlet present.srve0210i: problem can debugged recompiling servlet using classes in application's runtime class path 

in pom.xml referencing jax/rs implementation of glassfish/jersey. no problem in tomcat, because tomcat servlet container, liberty full jee application server, comes own jax/rs implementation based on apache cxf , jackson.

so first recommend install liberty locally test code before ship bluemix. go liberty's download page.

then should remove glassfish dependencies , change pom.xml use following dependency:

<dependency>     <groupid>javax</groupid>     <artifactid>javaee-api</artifactid>     <version>7.0</version>     <scope>provided</scope> </dependency> 

this plain jee , has no dependency on vendor specific code. @ this simple pom.xml. run in liberty on bluemix.


Comments

Popular posts from this blog

html - Styling progress bar with inline style -

java - Oracle Sql developer error: could not install some modules -

How to use autoclose brackets in Jupyter notebook? -