0

単純なサーブレットを考えてみましょう。

// 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;
}

現在、TomcatとAxis2doSomething()で実行されているWebサービスに関数を移植しています。コンテキストにアクセスしてサーブレットの下のファイルにアクセスできるようにするには、どうすれば移植できますか?

4

2 に答える 2

2

(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;
于 2009-12-25T21:17:14.480 に答える
0

サーブレットFilterThreadLocal. Axis もサーブレット コンテキスト内で実行されます。したがって、カスタム を実装し、ユーティリティ クラス内からアクセスできる場所に を詰め込むjavax.servlet.Filterだけです。からを取得できます。ServletRequestThreadLocalServletContextFilterConfig

于 2009-12-25T21:16:38.057 に答える