2013-08-02 8 views
5

मैं अपने जर्सी संसाधनों से बात करने के लिए एम्बेडेड जेटी को कॉन्फ़िगर करने की कोशिश कर रहा हूं लेकिन मैं यह नहीं समझ सकता कि इसे कैसे किया जाए। मैंने कुछ अलग-अलग चीजों की कोशिश की है लेकिन कुछ भी काम नहीं करता है। जेटी ट्यूटोरियल वास्तव में जर्सी के साथ इसे कैसे करना है इसे संभाल नहीं करता है। किसी भी कोड सुझाव या लिंक बहुत सराहना कर रहे हैंजर्सी संसाधनों तक पहुंचने के लिए एम्बेडेड जेटी को कैसे कॉन्फ़िगर करें?

संपादित करें:

package pojo; 

import org.eclipse.jetty.server.Server; 
import org.eclipse.jetty.servlet.DefaultServlet; 
import org.eclipse.jetty.servlet.ServletContextHandler; 
import org.eclipse.jetty.servlet.ServletHolder; 
import org.glassfish.jersey.servlet.ServletContainer; 

public class Main { 

    public static void main(String[] args) throws Exception { 
     Server server = new Server(8112); 
     ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); 
     context.setContextPath("/"); 
     server.setHandler(context); 
     ServletHolder h = new ServletHolder(new ServletContainer()); 
     h.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig"); 
     h.setInitParameter("com.sun.jersey.config.property.packages", "resources"); 
     h.setInitOrder(1); 
     context.addServlet(h, "/*"); 
     try 
     { 
      server.start(); 
      server.join(); 
     } 
     catch (Throwable t) 
     { 
      t.printStackTrace(System.err); 
     } 

इस वर्ग से कनेक्ट करने की कोशिश कर रहा:

package resources; 


import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.core.Context; 
import javax.ws.rs.core.Request; 
import javax.ws.rs.core.UriInfo; 

import com.codahale.metrics.MetricRegistry; 
import com.codahale.metrics.Timer; 


import java.util.ArrayList; 
import java.util.List; 

import pojo.Party; 

@Path("/parties") 
public class AllPartiesResource { 

    @Context 
    UriInfo url; 

    @Context 
    Request request; 

    String name; 

    public static final Timer allTime = DBConnection.registry.timer(MetricRegistry.name("Timer","all-parties")); 

    @GET 
    @Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML}) 
    public List<Party> getAllParties() throws Exception 
    { 
     final Timer.Context context=allTime.time(); //start the timer 
     List<Party> list = new ArrayList<Party>(); 
     DBConnection.readAllData(); 
     list.addAll(DBConnection.getPartyCollection().values()); 
     context.stop(); //stops timer 
     return list; 

//  ---> code for Jackson 
//  String string; 
//  DBConnection.readAllData(); 
//  ObjectMapper jsonMapper = new ObjectMapper(); 
//  string=jsonMapper.writeValueAsString(DBConnection.getPartyCollection()); 
//  return string; 
    } 

    @GET 
    @Path("count") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getPartyCount() throws Exception 
    { 
     DBConnection.readAllData(); 
     return String.valueOf(DBConnection.getPartyCollection().size()); 
    } 

    @Path("{party}") //points to OnePartyResource.class 
    public OnePartyResource getParty(@PathParam("party")String party) 
    { 
     name = party; 
     return new OnePartyResource(url,request,party); 
    } 
} 
+1

आपने किस चीज की कोशिश की है? –

उत्तर

9

आप एक साथ अपने कोड में जर्सी के 2 संस्करण मिश्रण कर रहे हैं - से ServletContainer जर्सी 2.x (पैकेज org.glassfish.jersey.*) और जर्सी 1.x (पैकेज/उपसर्ग com.sun.jersey.*) से गुण।

h.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "resources"); 

को जर्सी 2.x परिवर्तन का उपयोग कर इन दो पंक्तियों

h.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig"); 
h.setInitParameter("com.sun.jersey.config.property.packages", "resources"); 

अपने main विधि से अपने अनुप्रयोग तैनाती और अन्य जांच करने के लिए ServerProperties जो आपके लिए उपयोगी हो सकता है।

+0

मुझे वास्तव में कल यह एहसास हुआ और ग्लासफ़िश को सूरज पैकेज में बदल दिया और इसे ठीक कर दिया। फिर भी प्रतिक्रिया के लिए धन्यवाद – sreya

संबंधित मुद्दे