gpt4 book ai didi

java - 将 servlet 移植到 Web 服务 - 访问上下文?

转载 作者:行者123 更新时间:2023-11-28 22:46:11 25 4
gpt4 key购买 nike

考虑一个简单的 servlet:

// MyServlet.java
protected void doGet(HttpServletRequest request, HttpServletResponse response)
{
UtilClass.doSomething(getServletContext().getRealPath(SOME_FILE));
}

实用类对文件做了一些事情:

// UtilClass.java
public String doSomething(String filePath)
{
File f = new File(filePath);
String s = readWhateverFrom(f);
return s;
}

我现在正在将 doSomething() 函数移植到在 Tomcat 和 Axis2 下运行的 Web 服务。我将如何移植它以便我仍然可以访问上下文并访问 servlet 下的文件?

最佳答案

您应该了解您的 (jax-ws) MessageContext。这将取决于您的配置,但可能使用

@Resource
private WebServiceContext wsCtx;

在你的方法中:

MessageContext messageContext = wsCtx.getMessageContext()

ServletContext ctx = (ServletContext)
messageContext.getProperty(MessageContext.SERVLET_CONTEXT);

编辑:似乎 Axis2(以及 Axis)支持以下内容:

HttpServlet servlet = (HttpServlet) 
MessageContext.getCurrentContext().getProperty(HTTPConstants.MC_HTTP_SERVLET);
ServletContext ctx = servlet.getServletContext();

使用以下导入:

import org.apache.axis2.context.MessageContext;
import org.apache.axis2.transport.http.HTTPConstants;

关于java - 将 servlet 移植到 Web 服务 - 访问上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1961946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com