当前位置: 首页 > 知识库问答 >
问题:

使用GoogleAppEngine和Jersey将URL映射到Java方法

张瀚漠
2023-03-14

我正在尝试运行Jersey的HelloWorld示例,但失败了。这就是我尝试过的。

我已经设置我的appengine-web.xml这样

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application>server</application>
  <version>1</version>
</appengine-web-app>

我已经设置了我的网站。xml像这样,

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
         version="2.5">
    <servlet>
        <servlet-name>server</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
            <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.service</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>server</servlet-name>
        <url-pattern>/helloworld</url-pattern>
    </servlet-mapping>
</web-app>

我的服务设置是这样的,

package com;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/helloworld")
public class service {
    @GET
    @Produces("text/plain")
    private String getString(){
        return "hello";
    }
}

我正在使用这些libs

asm-3.3.1。jarjersey-bundle-1.12。jarjersey-core-1.12。jarjersey-server-1.12。jar

这是这个问题的视频http://screencast.com/t/oIYKMQw1x

知道我做错了什么吗?

谢谢

堆栈跟踪

Apr 23,2012 12:19:27 AMcom.sun.jersey.server.impl.application.RootResourceUri规则SEVERE: ResourceConfig实例不包含任何根资源类。Apr 23,2012 12:19:27 AMcom.google.appengine.tools.development.ApiProxyLocalImpl日志SEVERE:javax.servlet.ServletContext日志:不可用com.sun.jersey.api.container.ContainerExcture: ResourceConfig实例不包含任何根资源类。(RootResourceUriRules.java:99)在com.sun.jersey.server.impl.application.WebApplication ationImpl._initiate(WebApplicationmpl.java:1308)在com.sun.jersey.server.impl.application.WebApplicationmpl.access700美元(WebApplicationmpl.java:171)在com.sun.jersey.server.impl.application.WebApplication./>)在com.sun.jersey.server.impl.application.WebApplication ationImp13 Dollars. f(WebApplicationmpl.java:773)在com.sun.jersey.spi.inject.Errors.process有错误(Errors.java:193)在com.sun.jersey.server.impl.application.WebApplicationmpl.initiate(WebApplication Inpl. java: 773)在com. sun. jersey. server. imp. Application。启动(WebApplication ationInv. java: 768),网址为com. sun. jersey. spi.容器. servlet。启动(ServletContainer. java: 488),网址是com. sun. jersey. spi.容器. servlet。ServletContainer$InternalWebComponent. start(ServletContainer. java: 318),网址为com. sun. jersey. spi.容器. servlet。WebComponent. load(WebComponent. java: 607)在com. sun. jersey. spi.容器. servlet。WebComponent. init(WebComponent. java: 208),网址为com. sun. jersey. spi.容器. servlet。服务器容器. init(ServletContainer. java: 373)在com. sun. jersey. spier. servlet。在javax. servlet. init(ServletContainer. java: 556)。GenericServlet. init(GenericServlet. java: 212)在org. morbay. jetty. servlet。ServletHolder. initServlet(ServletHolder. java: 440)在org. endbay. jetty. servlet。ServletHolder. doStart(ServletHolder. java: 263)在org. morbay.组件。启动(AbstractLifeCycle. java: 50)在org. morbay. jetty. servlet。[CNNVD]ServletHandler初始化(ServletHandler. java: 685)Context. starContext(Context. java: 140)在org. morbay. jetty. webapp。WebAppContext. start Context(WebAppContext. java: 1250)在org. morbay. jetty. handler。ContextHandler. doStart(ContextHandler. java: 517)在org. morbay. jetty. webapp。WebAppContext. doStart(WebAppContext. java: 467)at org. morbay.组件。启动(AbstractLifeCycle. java: 50)在org. morbay. jetty. handler。HandlerWrapper. doStart(HandlerWrapper. java: 130)在org. morbay.组件。启动(AbstractLifeCycle. java: 50)在org. morbay. jetty. handler。HandlerWrapper. doStart(HandlerWrapper. java: 130)在org. morbay. jetty。Server. doStart(Server. java: 224)at org. morbay.组件。开始(AbstractLifeCycle. java: 50)在com. google. appgine. ool. Development。JettyContainerService. start Container(JettyContainerService. java: 196),网址为com. google. appnine.工具。启动(AbstractContainerService. java: 239),网址是com. google. appnine.工具。启动(DevAppServerImp. java: 146)在com. google. appgine.工具。应用(DevAppServerMain. java: 189)在com. google. appgine.工具。Parser$ParseResult. appyArgs(Parser. java: 48)at com. google. appgine. ool. Development.)java: 128)在com. google. appgine.工具。主要(DevAppServerMain. java: 104)

共有1个答案

孟楷
2023-03-14

所以我的问题是我映射到com。服务哪个是类。我需要映射到包含我的类的包。

 类似资料:
  • 问题内容: 我一直在尝试创建Jersey REST Web服务。我想从Java类接收和发出JSON对象,如下所示: 应该这样将其转换为JSON: 但是,我找不到为此的标准解决方案。似乎每个人都在实现自己的包装器 解决方案。这个要求对我来说似乎是最基本的。我不敢相信这是普遍接受的解决方案,尤其是因为Jersey确实是Java中更有趣的部分之一。 我还尝试了升级到Jackson 1.8,这仅给了我这一

  • 我能够使用Json输出运行Jersey,并且能够在没有任何问题的情况下使用Json映射获得“get”请求。 我也有一些JSON方法,它们是“post”方法,它们映射到Java类,如下面的方法- 供您参考,我在这里或这里遵循指南 在给出一个有效的post请求时,它们都开始抛出下面的错误-

  • 问题内容: 我是Java servlet的新手。 如果这个问题看起来很愚蠢,请原谅我。 我在web.xml servlet选项卡中使用netbeans添加了servlet映射,例如servlet类和url模式,但是当应用程序运行时,它不会直接进入目标URL,即http:// localhost:8080 / HelloDuke2 / greeting 但 http :// localhost:80

  • 问题内容: 我们有一张有很多列的大桌子。移至MySQL Cluster后,由于以下原因无法创建表: 错误1118(42000):行大小太大。不包括BLOB在内的已使用表类型的最大行大小为14000。这包括存储开销,请查阅手册。您必须将某些列更改为TEXT或BLOB 举个例子: 这是用于存储配置参数的表。我在想,我们可以将一些列合并为一个列,并将其存储为JSON对象,然后将其转换为Java对象。 例

  • 我正在尝试使用客户端发送到映射(或JSON对象)中的JSON对象。我使用的是Jersey2.22.1,默认情况下它使用的是Moxy。尝试了如下所示的HashMap,但没有成功。它给出415错误-“不支持的媒体类型” 尝试使用自定义类以及包装一个映射。同样的错误。有谁能帮我,让我知道如何处理地图。 作为临时解决方案,我使用下面代码。但想知道如何正确地使用Map完成此操作

  • 我知道如何变换