- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试配置嵌入式 jetty 以与我的 Jersey 资源通信,但我不知道该怎么做。我尝试了几种不同的方法,但似乎没有任何效果。 jetty 教程并没有真正处理如何使用 Jersey 进行操作。非常感谢任何代码建议或链接
编辑:
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);
}
}
最佳答案
您在代码中将 Jersey 的 2 个版本混合在一起 - 来自 Jersey 2.x 的 ServletContainer
(包 org.glassfish.jersey.*
)和来自 Jersey 的属性1.x(包/前缀 com.sun.jersey.*
)。
要使用 Jersey 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
方法到
h.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "resources");
并检查另一个ServerProperties您可能会发现有用。
关于java - 如何配置嵌入式 jetty 访问泽西资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025498/
我尝试使用 Jersey/Spring/Hibernate 部署应用程序,每次我尝试部署它时都会抛出此异常: SEVERE: Context initialization failed jav
这个问题已经有答案了: Java get ResultSet from SQL Array is Failing (1 个回答) 已关闭 8 年前。 我当前在尝试运行此 Sql 命令时遇到此异常:SE
我想使用 Jetty + Jersey 生成 JSON。我的 POM.XML 类似于这篇文章:How do I update example to work with latest versions
我面对的是 Jersey 2.7。这是我的服务: package edu.srv.rest; import javax.ws.rs.GET; import javax.ws.rs.POST; impo
我很难理解 Jersey 的注入(inject)机制。 JAX-RS 规范 (http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-
我使用 jersey 实现了 REST 服务。通信层通过 ssl 进行保护。在客户端,我收到了这样的要求:在调用服务并验证服务器端的请求之前,我应该签署 xml。 http://docs.oracle
我用Tomcat做了一个Jersey maven项目,现在我想将它连接到Mysql数据库。我进入数据源浏览器 -> 数据库连接 -> 新驱动程序定义,但是当我选择 MySQL JDBC Driver
我正在从事一个企业项目,该项目有一个 EJB 模块和一个在 GlassFish v3.1、Weld v1.1 和 Jersey 上运行的 Web 项目。在 EJB 中,我定义了一个实体类 Manufa
我花了太多时间(我会说超过 10 个小时)试图弄清楚如何获取基本的 json 调用(来自 angularjs)以在我的 Jersey 2.4 上打开和处理。我已经在谷歌上尝试了所有可能的结果,但仍然得
最近我开始使用 SecurityEntityFilteringFeature。放置在 Jersey 环境中的代码下方。 environment.jersey().register(SecurityEn
我有一个包含多个字段和文件上传的 HTML 表单。 在 Java 方面,我收到了如下表单,并且有效: @Component("org.phenotips.metabolites.FileUploade
我想为资源的 REST 接口(interface)提供这样的方法 @POST @Consumes(MediaType.APPLICATION_JSON) public void add(@Auth U
我是 Restful Web 服务的新手。我想通过 Jersey 客户端访问服务器。但我收到了 500 错误。我想做的是通过客户端提交表名称并以 JSON 形式检索表内容。谁能找到这里的错误吗? 这是
我在部署 Web 应用程序时遇到以下异常。使用weblogic 12c (JerseyWebTarget.java:71) at org.glassfish.jersey.cl
完整存档: google drive (Tomcat 7.0) 我重复了 Jersey Restful exception 中的代码 本地测试网址 - http://localhost:8080/te
我正在使用 jersey 1.8、tomcat 7 和 spring 4 构建 jersey Rest api 此服务将具有基本 HTTP 身份验证,并将提供任何来源的信息(它将由来自不同域的客户使用
我正在从现在只读的谷歌群组 App Engine for Java 中重新提出一个 Unresolved 问题,因为我有完全相同的问题。 ( original ) 我使用 jersey、jaxb 和
检测问号 我需要实现一个协议(protocol),用户可以在该协议(protocol)中提供附加到 URL 的问号,以便检索有关所提供资源的附加信息。我知道 URL 资源后面的问号表示查询参数。不幸的
我正在用 Jersey 编写一个 Restful Web 服务,这是示例代码: @GET @Produce(MediaType.APPLICATION_JSON) public String find
我有客户像这样传递 ID:/v1/path?id=1,2,3 我拥有的和想要的 我有一个 Dropwizard/Jersey 的资源类。我想在资源的 GET 方法中将查询参数 id=1,2,3 显示为
我是一名优秀的程序员,十分优秀!