我在一些应用程序中尝试公开一些RESTful Web服务。不幸的是,我被卡住了。项目构建和部署很好,但我无法使用GET请求访问我的服务。
我的战争看起来很像:战争。
war
|--index.html
|--WEB-INF
|--web.xml
|--classes
|--classes here..
我得到了空的web.xml
:
<web-app version="3.0" 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_3_0.xsd">
</web-app>
应用类别:
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class MyApplication extends Application {
}
和服务类:import javax。ejb。无国籍;导入javax。ws。rs.GET;导入javax。ws。rs.路径;导入javax。ws。rs.PathParam;导入javax。ws。rs.产品;导入javax。ws。rs.core。媒体类型;导入javax。ws。rs.core。回答
@Path("/test")
@Stateless
public class RestTest {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/status")
public Response getStatus() {
return Response.ok("{\"status\":\"Service is running...\"}").build();
}
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/status/{param}")
public Response getStatusParam(@PathParam("param") String param) {
return Response.ok("{\"status\":\"Service is running...\"," +
"\"param\":\"" + param + "\"}").build();
}
}
我试图通过<代码>http://localhost:8080/rest/test/status但是我得到了404。如果我尝试<代码>http://localhost:8080/rest我正在获取我的索引。所以我的战争应该正确部署。部署时也没有错误。
我试图删除@Statless
注解并在MyApplication.get类()
方法中返回我的类,但没有帮助。Bean肯定是可见的,因为Jboss记录了我的它的绑定。
我还从war中删除了所有jax-R和restesy JAR,以确保我使用的是正确的jax-R和restesy JAR(由Jboss提供)。
我应该做些什么来运行我的服务?
@编辑
如果我像那样发动战争,它是有效的。如果它被包括在耳朵里,我应该怎么做才能揭露这样的战争?
我知道这个问题有点错,但我还是想把答案贴出来。也许这对某些人有帮助。
为了让它工作,我不得不在web.xml
中添加几行。这是这个片段:
<module id="war">
<web>
<web-uri>war-1.0.war</web-uri>
<context-root>/rest</context-root>
</web>
</module>
然后我不得不通过<代码>http://localhost:8080/rest/rest/test/status因此我还编辑了MyApplication类,将注释更改为应用程序路径(“/rest”),然后一切正常,服务可用http://localhost:8080/rest/test/status路径。
我按照您所描述的运行您的示例,并且服务正在运行,我收到{“status”:“服务正在运行…”}。
为了确保您的服务部署正确,您在运行Jboss时是否在日志文件中看到了这样的内容
[org.jboss.resteasy.spi.ResteasyDeploiri](MSC服务线程1-8)部署javax.ws.rs.core.Application: MyApplication
问题内容: 问题很简单:假设我有一个完全可响应的后端,如何将其流式传输到浏览器(例如大文本),并在每个块来自服务器时立即将它们打印给用户? 可能我缺少一些重要的概念性要点,但是我所需要知道的是:是否可以通过一个HTTP GET(或否)请求发送少量数据(从服务器到浏览器)?关键是:在发送全部数据之前,我可以写那些小的部分吗? 谢谢你的帮助。我以前确实尝试过google,但是我总是会得到其他概念(例如
我得到错误:com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法通过使用安全套接字层(SSL)加密建立到SQL服务器的安全连接。错误:“SQL服务器没有返回响应。连接已关闭。” Hibernate配置: application.properties: pom.xml: SQLServerException: openssl客户端连接服务器:1
我使用两个解析服务器,一个用于主数据库,一个用于liveQuery。我还通过AWS ElastiCache设置了redis。问题是当我在客户端(iOS)中使用实时查询时,没有显示任何事件。代码对任何更改都没有响应。这里会有什么问题? 一个问题:来自AWS Elasticache的redisURL是这样的:(这会导致服务器启动错误)appname.jajj2i.0001.use1.cache.ama
我有一个react本机应用程序,它使用与。NET Core2.1通信的signalR。 套接字连接没有任何错误。一切都很好。但是服务器不能响应客户端的ping消息,并返回504给客户端。当返回504时,客户端的连接关闭。在hubconnection.onclose()处理。然后客户端需要重新连接。 proxy_read_timeout可以设置为高毫秒。但很乱。 所以我不能在客户机上有效地使用kee
我做了一个页面,将上传某些文件类型。它在我当地的开发中运行良好,但在生产中不起作用。它不会通过do_upload()函数。除此之外,什么也看不见。 我尝试将上载路径更改为不存在的文件夹,它显示“上载路径似乎无效”。表示do_upload()是否正常工作? 上载文件夹权限为777。 我也尝试过使用绝对路径,但仍然没有显示任何pass do_upload()。 或者和服务器有关? 有人知道发生了什么吗
我是web服务编程新手,我想使用netbeans 6在Grizzly服务器上使用Jersey创建一个restful web服务,然后创建一个客户端javascript,以便通过浏览器使用该web服务。因此,我开始了解更多关于restful web服务的知识,并在网上阅读了大量指南,然后通过阅读jersey用户指南http://jersey . Java . net/nonav/documentat