Quantcast
Channel: SCN : Popular Discussions - SAP HANA Cloud Platform
Viewing all articles
Browse latest Browse all 2334

Creating REST API on SAP HANA cloud

$
0
0

Hi,

 

I have installed sap hana sdk in my eclipse and created a dynamic web project and deployed it. I have created a sample REST service using Jersey.

I have also tested this REST service in Apache tomcat and when I call it it gives me proper response. But same REST service when I call on SAP HANA i get following error: Please help me in resolving this error.

 

URL: http://localhost:8181/HelloWorld/rest/UserInfoService/name/girish

 

Response:

 

Status

500 Internal Server ErrorLoading time: 35

Request headers

 

 

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36

 

 

Content-Type: text/plain; charset=utf-8

 

 

Accept: */*

 

 

Accept-Encoding: gzip,deflate,sdch

 

 

Accept-Language: en-US,en;q=0.8,kn;q=0.6

 

 

Response headers

 

 

Content-Type: text/html;charset=utf-8

 

 

Content-Language: en

 

 

Content-Length: 5473

 

 

Date: Tue, 06 May 2014 09:49:15 GMT

 

 

Connection: close

 

 

Server: SAP

 

com.sap.security.auth.service.webcontainer.internal.Authenticator.invoke(Authenticator.java:192)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

com.sap.core.tenant.valve.TenantValidationValve.invokeNextValve(TenantValidationValve.java:221)

com.sap.core.tenant.valve.TenantValidationValve.invoke(TenantValidationValve.java:103)

com.sap.js.statistics.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:24)

com.sap.core.js.monitoring.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:27)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)

org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)

org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

java.lang.Thread.run(Thread.java:744)

</pre></p><p><b>root cause</b><pre>java.lang.NoClassDefFoundError: javax/annotation/Priority

org.glassfish.jersey.model.internal.ComponentBag.modelFor(ComponentBag.java:483)

org.glassfish.jersey.model.internal.ComponentBag.access$100(ComponentBag.java:89)

org.glassfish.jersey.model.internal.ComponentBag$5.call(ComponentBag.java:408)

org.glassfish.jersey.model.internal.ComponentBag$5.call(ComponentBag.java:398)

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:228)

org.glassfish.jersey.model.internal.ComponentBag.registerModel(ComponentBag.java:398)

org.glassfish.jersey.model.internal.ComponentBag.register(ComponentBag.java:235)

org.glassfish.jersey.model.internal.CommonConfig.register(CommonConfig.java:410)

org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:420)

org.glassfish.jersey.server.ResourceConfig.registerClasses(ResourceConfig.java:496)

org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.&lt;init&gt;(ResourceConfig.java:1177)

org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.&lt;init&gt;(ResourceConfig.java:1144)

org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1140)

org.glassfish.jersey.server.ApplicationHandler.&lt;init&gt;(ApplicationHandler.java:317)

org.glassfish.jersey.server.ApplicationHandler.&lt;init&gt;(ApplicationHandler.java:284)

org.glassfish.jersey.servlet.WebComponent.&lt;init&gt;(WebComponent.java:311)

org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:168)

org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)

javax.servlet.GenericServlet.init(GenericServlet.java:244)

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)

com.sap.security.auth.service.webcontainer.internal.Authenticator.invoke(Authenticator.java:192)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

com.sap.core.tenant.valve.TenantValidationValve.invokeNextValve(TenantValidationValve.java:221)

com.sap.core.tenant.valve.TenantValidationValve.invoke(TenantValidationValve.java:103)

com.sap.js.statistics.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:24)

com.sap.core.js.monitoring.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:27)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)

org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)

org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

java.lang.Thread.run(Thread.java:744)

 

My web.xml file :

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xmlns="http://java.sun.com/xml/ns/javaee"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

  id="WebApp_ID" version="2.5">

  <display-name>HelloWorld</display-name>

  <servlet>

  <description></description>

  <display-name>HelloWorldServlet</display-name>

  <servlet-name>HelloWorldServlet</servlet-name>

  <servlet-class>com.hana.servlets.HelloWorldServlet</servlet-class>

  </servlet>

  <servlet-mapping>

  <servlet-name>HelloWorldServlet</servlet-name>

  <url-pattern>/</url-pattern>

  </servlet-mapping>

  <!-- <display-name>HelloWorld</display-name>  -->

  <servlet>

  <servlet-name>Jersey REST Service</servlet-name>

  <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

  <init-param>

  <param-name>jersey.config.server.provider.packages</param-name>

  <param-value>com.hana.rest.services</param-value>

  </init-param>

  <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

  <servlet-name>Jersey REST Service</servlet-name>

  <url-pattern>/rest/*</url-pattern>

  </servlet-mapping>

</web-app>

 

My REST service code:

 

import javax.ws.rs.GET;

import javax.ws.rs.Path;

import javax.ws.rs.PathParam;

import javax.ws.rs.Produces;

import javax.ws.rs.core.MediaType;

 

 

@Path("UserInfoService")

public class UserInfo {

 

 

  @GET

  @Path("/name/{nameParam}")

  @Produces(MediaType.TEXT_XML)

  public String userName(@PathParam("nameParam") String nameParam) {

  String name = nameParam;

  return "<User>" + "<Name>" + name + "</Name>" + "</User>";

  }

 

 

  @GET

  @Path("/age/{j}")

  @Produces(MediaType.TEXT_XML)

  public String userAge(@PathParam("j") int j) {

  int age = j;

  return "<User>" + "<Age>" + age + "</Age>" + "</User>";

  }

}


Viewing all articles
Browse latest Browse all 2334

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>