3

プログラムで DataSource オブジェクトを (eclipse) jetty の JNDI コンテキストにバインドしたいと思います。テスト目的で必要です。ここに私が今持っているコードがあります:

server = new Server(SERVER_PORT);
webAppContext = new WebAppContext();
webAppContext.setResourceBase(".");
webAppContext.setContextPath("/" + SERVER_CONTEXT);
webAppContext.addEventListener(prepareServletContextListener());
webAppContext.addFilter(GuiceFilter.class, "/*", null);
webAppContext.addServlet(DefaultServlet.class, "/");
Resource r = new Resource(webAppContext,"jdbc/testDS",createDataSource());

server.setHandler(webAppContext);
server.start();

もちろん、 Resource の行は機能していません。次のような sth を取得するためにプログラムでバインドする方法がわかりません。

<New id="DSTest" class="org.eclipse.jetty.plus.jndi.Resource">
 <Arg></Arg>
 <Arg>jdbc/DSTest</Arg>
 <Arg>
    <New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
       <Set name="Url">jdbc:mysql://localhost:3306/databasename</Set>
       <Set name="User">user</Set>
       <Set name="Password">pass</Set>
    </New>
 </Arg>
</New>

どんな助けでも大歓迎です。

4

3 に答える 3

4

定義されたリソース オブジェクトを属性としてサーバー オブジェクトに追加する必要があります。以下が機能するはずです。

Resource r = new Resource("jdbc/testDS",createDataSource());
server.setAttribute("myDs", r);
于 2013-01-28T09:01:48.313 に答える