2010-12-08 25 views
2

私はちょうど組み込みjettyから始めました。いくつかのエラーメッセージが表示されます。シンプルで簡単な数行のコードで、私はオンラインで見つけ出してテストしたかったのです。組み込みJettyで始める

import org.jaxen.Context; 
import org.mortbay.jetty.Server; 
import org.mortbay.jetty.servlet.ServletHolder; 

public class Main { 

    public static void main(String[] args) throws Exception { 

     ServletHolder sh = new ServletHolder(ServletContainer.class); 
     sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig"); 
     sh.setInitParameter("com.sun.jersey.config.property.packages", "jerseyplusjetty"); 
     Server server = new Server(80); 
     ServletContextHandler sch = new ServletContextHandler(server, "/"); 
     sch.addServlet(sh, "/*"); 
     server.start(); 
     server.join(); 

    } 
} 

私はすべての桟橋をJavaビルドパスに入れています。コンストラクタServletHolder(Class)は未定義です。コンストラクタServer(int)は未定義です。ServletContextHandlerは型に解決できません。 ServletHolderとServer内のパラメータを削除すると、それは不平を言います。例えばもし私が持っていれば:ServletHolder sh = new ServletHolder();サーバーサーバー=新しいサーバー(); しかし、それは正しくありません。私はJettyのドキュメントを読んで、ServletHolderクラスはパラメータを取ることができます。私はここに何かを逃していますか

答えて

1

私が持っているServletHolderのバージョンは、コンストラクタ内でStringまたはサーブレットを受け取ります。したがって、代わりに

new ServletHolder(ServletContainer.class)を入力すると、new ServletHolder(ServletContainer.class.getCanonicalName())またはnew ServletHolder(new ServletContainer())になるはずです。

ServletContainerは、サーブレットの奇妙な名前ですが、それは実際にはサーブレットであることを確認してください。

また、いくつかのバージョンのJettyがあることに注意してください(新しいものではすべてのクラスがorg.eclipse.jettyパッケージに入っているので古いものを使用しています)。あなたが持っているバージョンとは異なるバージョンを参照するコード。 mavenからjetty 7.2.2を取得し、サンプルコードhereを使用します。

3

ちょうどFYI一般的に埋め込まれた桟橋の上に...私は謙虚に提出githubのプロジェクトは、最大トリミング保つ埋め込まれた桟橋の問題のほとんどをカバーすることができる作成しました。

私はAbstractHandlers、サーブレット、ジャージーサーブレット、静的ファイル、Webアプリケーションと何ではないの例を持っています。まだRoRとSinatraに取り組んでいますが、そこに着くでしょう。

詳細はhttps://github.com/ZenGirl/EmbeddedJettyRepositoryを参照してください。 誰でも貢献したい、ただ聞いてください。

関連する問題