当前位置: 首页 > 面试题库 >

在Jax Rs / Appfuse应用程序中获取HttpServletRequest?

应子真
2023-03-14
问题内容

我使用AppFuse创建了一个基本的应用程序外壳,并按照AppFuse教程使用Jax-
RS创建了一个简单的RESTful服务。那很好。调用时,http://localhost:8080/services/api/persons将Person对象的集合作为Json格式的字符串返回,并带有正确的数据。

我现在想从Appfuse提供的RESTful服务中访问ServletRequestServletResponse对象(以使用需要这些对象的另一个库)。

我 _认为_应该可以通过添加@Context注释来实现,但是,如果我添加@Context标记(请参见下文),它可以很好地编译,但是在重新启动服务器时将引发异常(附加在底部)。

这是的声明@WebService

@WebService
@Path("/persons")
public interface PersonManager extends GenericManager<Person, Long> {
    @Path("/")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    List<Person> read();
    ...
}

这是实现类,我认为我将其称为@Context批注:

@Service("personManager") 
public class PersonManagerImpl extends GenericManagerImpl<Person, Long> implements PersonManager { 
    PersonDao personDao; 
    @Context ServletRequest request; // Exception thrown on launch if this is present 
    @Context ServletContext context;  // Exception thrown on launch of this is present 
    ... 
    }

希望我缺少一些简单的东西,要么包含一些东西使其工作,要么意识到应该无法获取ServletRequest,因为……任何线索都将受到欢迎。

在IntelliJ中的Tomcat上运行它。

===异常堆栈跟踪(已截断)===

Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: 
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'serviceBeans' threw exception; nested exception is java.lang.RuntimeException: java.lang.NullPointerException 
        at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:102) 
        at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58) 
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1358) 
        ... 37 more

问题答案:

尝试直接注入HttpServletRequestHttpServletContext

@Context private HttpServletRequest servletRequest;
@Context private HttpServletContext servletContext;


 类似资料:
  • 问题内容: 您能否解释一下如何在我的子类中获取实例?可能吗?我已尝试按照以下代码片段的方式进行操作,但它似乎不起作用- 未设置: web.xml: 问题是我需要从中获取上下文参数。如果有其他方法,请给我一个提示,我将不胜感激。 我了解注记可能并非为此目的。实际上,我不需要自己。如果只有我可以从web.xml中获取上下文参数,我将非常高兴。 这是我真正需要的一个例子: 谢谢。 问题答案: 从Jers

  • 要获取请求URL,可以在堆栈溢出中找到以下方法。 第一种方法: 第二种方法: 第三种方法: 我不知道在spring boot应用程序中使用哪一个来获取请求URL。 如果我使用第三种方法,那么我是否需要在配置类中创建RequestContextListener的bean,如下所示?

  • 伙计们,我们外包了我们的移动应用程序开发,公司只是给了我一个IPA文件,我必须重新签署,然后上传到iTunes Connect。现在,我只想看到这个应用程序的试飞,我看了一个youtube视频,认为这将是直接的,所以我创建了一个生产证书后,我做了我的应用程序id,然后我创建了一个发行版供应配置文件,并选择应用商店作为我的发行版。我曾经为了改变我在这里找到的教程而进行设计,但是当我使用应用程序加载器

  • 我做了一个C应用程序,它假设使用Kerberos身份验证来访问HDFS。这个应用程序的webserver也是用C编写的。 我正在尝试使用Kerberos票证在此应用程序中进行透明身份验证。 我使用以下命令对未经授权的用户进行了服务器响应: HTTP/1.1 401未经授权 WWW-认证:协商 浏览器会对标题中的授权字段做出反应,如下所示: 授权:协商Yiecgygkwybbqucoid/jCCA/

  • 我对Java Web服务器和Web应用程序非常陌生。我们有一个非常老的基于Appfuse框架的应用程序在Tomcat5上运行良好。Appfuse是一个基于sprint的框架,与hubernet和其他一些东西一起构建。 我需要把它转移到JBOSS EAP 6.1。最初我在独立模式下测试 我想我已经完成了1。JBossWeb。xml创建2。在单机版中创建oracle数据库模块并添加数据库连接。xml

  • 问题内容: 我正在尝试在Java Webstart应用程序中加载许多资源。 我最初尝试使用以下命令加载这些文件: 但这没有用-它引发了IllegalArgumentException。进一步的研究表明,该方法不适用于从jar文件访问资源,因此我需要使用以下方法: 但是,当我从Jnlp使用它运行时,得到奇怪的结果。如果我运行以下命令: 在我的IDE中,我得到了对与错(正如我期望的那样)。从jnlp运