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

使用Java Web Services时如何获得对HttpServletRequest对象的访问

危飞文
2023-03-14
问题内容

我正在使用Java 6,Tomcat
6和Metro。我使用WebService和WebMethod批注公开我的Web服务。我想获取有关请求的信息。我尝试了以下代码,但是wsCtxt始终为null。我必须采取什么步骤才能使WebServiceContext
为null。

换句话说:如何执行以下行以获取wsCtxt的非空值?

MessageContext msgCtxt = wsCtxt.getMessageContext();

@WebService
public class MyService{

  @Resource
  WebServiceContext wsCtxt;

  @WebMethod
  public void myWebMethod(){
    MessageContext msgCtxt = wsCtxt.getMessageContext();
    HttpServletRequest req = (HttpServletRequest)msgCtxt.get(MessageContext.SERVLET_REQUEST);
    String clientIP = req.getRemoteAddr();
  }

问题答案:

我建议您将变量从wsCtxt重命名为wsContext或将name属性分配给@Resource批注。@Resource上的J2ee教程指示变量名称用作查找的一部分。我在Glassfish中注入不同类型的资源时遇到了相同的问题。

尽管您的正确名称可能不是wsContext。我正在关注这个Java技巧。如果您喜欢变量名称wsCtxt,请在变量声明中使用name属性:

@Resource(name="wsContext") WebServiceContext wsCtxt;



 类似资料:
  • 问题内容: 我需要在onclick事件的调用对象上有一个处理程序 即 我想在不使用jquery的$()。click或$()。live的情况下执行此操作,但要使用上述方法。 问题答案: 传递内联点击处理程序 或在函数中使用根据[W3C DOM 2级事件模型 但是,当然,IE是不同的,因此处理此问题的原始JavaScript方法是 或更详细 其中是被传递到在比IE其他浏览器的功能。 如果您使用的是jQ

  • 问题内容: 是否有任何内置函数可以返回对象的长度? 例如,我有哪个应该返回。如果我使用它返回。 它可能是一个简单的循环函数,但我想知道是否有内置函数? 问题答案: 对于支持Object.keys()的浏览器,您可以执行以下操作: 否则(特别是在IE <9中),您可以使用循环自己遍历对象: 该是有确保你只从字面对象计数的属性,而不是从它的原型属性是“继承”。

  • 我知道如何在不使用parsejson的情况下使用reverfit和迭代数组来获取对象,但我不能这样做,因为这部分是用reverfit和gson自动完成的。 我在这个问题上已经困了一段时间了,如果你能给我指点,我会非常感激的。 更新:

  • 我试图获得对创建java的GoogleMap对象的引用,但我不知道如何获得这个引用。

  • 问题内容: 我有一个接收HttpServletRequest的Filter,该请求是一个POST,其中包含我需要读入我的filter方法的xml。从HttpServletRequest对象获取发布的xml的最佳方法是什么。 问题答案: 这取决于客户端的发送方式。 如果已将其作为原始请求正文发送,则使用: 如果已将其作为常规请求参数发送,请使用: 如果已将其作为具有部分风味的上载文件发送,请使用。

  • 问题内容: 我有一个具有@Embedded类Profile的User类。如何给Profile实例引用其所有者User类? 问题答案: 假设JPA而不是严格地处于hibernate状态,则可以通过应用getter / setter对而不是私有成员本身来实现。 但是,我想问的是,在这种情况下,嵌入式实体是否就是您想要的,而不是@OneToOne关系,或者只是将Profile类“展平”到User中。@E