我有一个基于Jersey的Rest服务在tomcat服务器上运行。没有UI,只是一个提供一些rest服务的服务器。现在,要访问这个服务,我必须输入的URL相当长。类似于localhost:8080/MyApp/url_pattern/classPath/method
,其中MyApp是我部署的webapp,url_pattern是我在web.xml中的servlet映射中定义的模式,classPath和method分别是类和方法的@path注释。有没有可能缩短它,这样我就可以去掉这个URL的MyApp和url_pattern部分。类似于localhost:8080/classpath/method
。
PS:这个服务器上只有一个webApp,所以没有myapp
部分
我不认为您可以从url中删除所有您想要的内容,但您绝对可以删除myapp
部分,将其作为Tomcat的根应用程序。
这个相关链接的答案很好地描述了如何将应用程序设置为根应用程序。这样您就可以访问您的REST服务,而不必在URL中包含应用程序名称:
在tomcat 7中设置默认应用程序
第二种方法:
将war文件保留在catalina_base/webapps中,以其原来的名称-关闭server.xml文件中主机元素中的autoDeploy和deployOnStartup。显式定义server.xml中的所有应用程序上下文,同时指定path和docbase。您必须这样做,因为您已经禁用了所有Tomcat自动部署机制,Tomcat将不再部署您的应用程序,除非它在server.xml中找到它们的上下文。
注:
我对web服务非常陌生。我已经公开了一些使用与Spring集成的Jersey 2的REST服务。现在我需要使用用户名/密码身份验证来保护那些rest服务。我被告知不要使用Spring Security。 我不知道该怎么做。我确实在网上搜索了一下,但是各种链接显示了不同的实现方式,我无法决定如何进行。
我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?
问题内容: 我正在尝试在Jersey中编写一个通用函数,该函数可用于通过REST获取相同类型的对象列表。我基于此论坛中的信息进行链接: 但是,这不起作用。如果我尝试执行它,则会出现以下错误:。 但是,如果我编写此函数时没有进行模板化(用实际的类名替换T),则可以正常工作。当然,这种方式会使函数失去其意义。 有没有办法解决这个问题? 问题答案: 我找到了解决方案 https://java.net/p
问题内容: 我使用Jersey 1.11做了一个小型Rest Web服务。当我调用返回Json的url时,非英文字符的字符编码存在问题。Xml的相应网址(“ test.xml”在开始的xml-tag中使其成为utf-8。 如何使网址“ test.json”返回utf-8编码的响应? 这是该服务的代码: 这是服务使用的pojo: 问题答案: Jersey在默认情况下应始终生成utf-8,听起来像是您
我知道这个问题已经被问了一百万次,但我不知道我的代币请求有什么问题。 curl中的命令是 Curl-v-X POST-H"授权:基本XXXXXXXXXXXXXXXXXXXXXXXXXX"-H"内容-类型:应用程序/x-www-form-urlencoded; charset=UTF-8"-k-d"grant_type=密码 转换为泽西它应该是: 我得到的答案是: JAVAlang.RuntimeE
问题内容: 我有一个Jersey REST API,并且正在使用来处理授权。我还在所有端点上使用,以便我的API可以处理数千个并发请求。 我的授权过滤器命中了一个远程服务,但是当运行过滤器时,Jersey尚未将当前线程添加到它的内部,因此我完全失去了异步的好处。 我可以告诉Jersey我希望这是异步的吗? 这是一个示例资源: 更新 刚刚收到泽西队球员的回音,从2.7开始,这是不可能的。只有资源方法