Jersey 2.x - JSONObject

messmar

Erfahrenes Mitglied
hallo zusammen,

Tomcat 8, NetBeans 8, PostGres 9, Jersey 2.x System: OS Sierra.

Für eine RESTfull App verwende ich Jersey 2.x und habe auch meine Resourcen Klasse mit den unterschiedlichen Methoden und Paths etc.

Bei einer Methode möchte ich ein JSON Objekt, das vom Client (Angular) per POST Methode kommt, abfangen und dementsprechend die Key/Values bearbeiten etc. Soweit alles passt.

Mein Problem ist, dass ich keine Referenz für JSONObject Klasse bekommen kann.
Ich habe alle nötigen JARs dafür in dem /lib Verzeichnis, und in die web.xml Datei habe ich auch die relevanten Einträge. Aber das Issue besteht weiterhin.

Über Google & Co. findet vieles, aber keiner der Tipps bzw. Lösungen war hilfreich.

Java Code für die Resource Class:
Java:
package net.xxx.messenger;
import java.net.URI;
import java.net.URISyntaxException;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
import java.sql.*;
import java.util.*;

import net.xxx.dao.*;



@Path("/messages")
public class MessageResources {
   
    .......
    .......

    /**
     *
     * @param inputJsonObj
     * @return
     * @throws Exception
     */
    @GET
    @Path("/testJson/{inputJsonObj}")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public JSONObject testJson(@PathParam("inputJsonObj") JSONObject inputJsonObj) throws Exception {
        .....
        .....
    }

    ......
    ......

}

Registrierung in der web.xml:

XML:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">
   
    <welcome-file-list>
        <welcome-file>readme.jsp</welcome-file>  
    </welcome-file-list>  

   
    <servlet>
        <servlet-name>Messenger Web App</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>
                net.xxx.messenger,
                org.glassfish.jersey.jackson.JacksonFeature,
                com.jersey.jaxb,
                com.fasterxml.jackson.core.json,
                jersey-media-json-jackson
            </param-value>
            
        </init-param>
        <load-on-startup>1</load-on-startup>
   </servlet>
   
   <servlet-mapping>
        <servlet-name>Messenger Web App</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
   </servlet-mapping>
   
   <resource-ref>
        <description>postgreSQL Datasource example</description>
        <res-ref-name>jdbc/ForMessenger</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
   </resource-ref>
   
   
</web-app>

und die JAR Dateien sind im Anhang zu sehen.

Für jeden Tipp oder Hilfe wäre ich sehr dankbar!

Grüße & Danke!
Messmar
 

Anhänge

  • Used Libraries.png
    Used Libraries.png
    464,2 KB · Aufrufe: 1