2

jetty 埋め込みを使用する場合、つまり、次のようにサーブレットを登録する場合:

ServletContextHandler context = new ServletContextHandler(server, "/", false, false);

s = new UploadServlet(jee);
context.addServlet(new ServletHolder(s), "/upload");

MultipartConfig アノテーションは尊重されていないようです。Servlet 3.0 でファイルのアップロードをサポートする URL を登録するにはどうすればよいですか? Jetty コードをリバース エンジニアリングすると、このようなものであることがわかりますが、「マルチ」とは何ですか?

ServletHolder sh = new ServletHolder(new UploadServlet(jee));
Object multi;
sh.getRegistration().setMultipartConfig(new MultipartConfigElement(multi));
context.addServlet(sh, "/upload");
4

2 に答える 2

0

ジェイコブ、

Jetty を使用した注釈の処理は、現在 WebAppContexts でのみサポートされており、注釈処理が有効になっている場合にのみサポートされています。jetty-9 doco では、スタンドアロンの jetty を使用して Web アプリの注釈を有効にする方法について説明しています: http://www.eclipse.org/jetty/documentation/current/annotations.html

したがって、ServletContextHandler を WebAppContext に変換し、次のリストを使用して setConfigurationClasses() を呼び出します。

    "org.eclipse.jetty.webapp.WebInfConfiguration",
    "org.eclipse.jetty.webapp.WebXmlConfiguration",
    "org.eclipse.jetty.webapp.MetaInfConfiguration",
    "org.eclipse.jetty.webapp.FragmentConfiguration",
    "org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
    "org.eclipse.jetty.annotations.AnnotationConfiguration"

そして、クラスパスにアノテーション処理関連の jar があることを確認してください - jetty ディストリビューションからこれらは次のとおりです: javax.annotation-1.1.0.v201108011116.jar

1月

于 2013-05-27T03:33:37.293 に答える