我正在使用嵌入式Jetty 9.2,并试图设置一个需要通过JNDI访问的Oracle数据源。我相信我已经正确地设置了这个,但是它不起作用,尽管花了一天的大部分时间在网上搜索。有人能帮忙吗?
以下是我的启动代码:
final String webdocs = "../abtc_core_war/src/main/webapp";
WebAppContext webapp = new WebAppContext(webdocs, "/");
webapp.setBaseResource(new ResourceCollection(Resource.newResource(webdocs)));
final HandlerCollection handlers = new HandlerCollection();
handlers.addHandler(webapp);
Server server = new Server();
ServerConnector connector=new ServerConnector(server);
connector.setPort(8080);
server.addConnector(connector);
server.setHandler(handlers);
//Enable parsing of jndi-related parts of web.xml and jetty-env.xml
org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
classlist.addAfter(
"org.eclipse.jetty.webapp.FragmentConfiguration",
"org.eclipse.jetty.plus.webapp.EnvConfiguration",
"org.eclipse.jetty.plus.webapp.PlusConfiguration");
try
{
server.start();
}
catch (Exception e)
{
server = null;
throw e;
}
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/abtcDS");
String url = "http://localhost:" + connector.getLocalPort() + "/app";
System.out.println("URL ==> " + url);
这是我的jetty-env.xml(在我的战争的WEB-INF目录中):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure id="wac" class="org.eclipse.jetty.webapp.WebAppContext">
<New id="ResourceRef_abtcCoreDatasource" class="hello.org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>abtcDS</Arg>
<Arg>
<New class="oracle.jdbc.OracleDriver">
<Set name="DriverType">thin</Set>
<Set name="URL">jdbc:oracle:thin:@nonprodcluster:1521/e1abtc_app</Set>
<Set name="User">user</Set>
<Set name="Password">pass</Set>
</New>
</Arg>
</New>
<New class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid="wac"/></Arg>
<Arg>Test</Arg>
<Arg type="java.lang.String">Value</Arg>
</New>
</Configure>
这是我的web.xml参考资料:
<resource-ref id="ResourceRef_abtcCoreDatasource">
<res-ref-name>abtcDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
我得到两个错误。当我启动服务器时,我得到
JAVAlang.IllegalStateException:没有要为名称javax绑定的内容。sql。数据源/默认值
在java:comp/env/abtcDS上查找abtcDS返回
异常线程"main"javax.naming.NameNotFoundExcema;其余名称'comp/env/abtcDS'
如果我试图查找java: comp/env我得到
javax。命名。NameNotFoundException;剩余名称“env”
所以看起来整个JNDI系统没有初始化。
提前感谢您的帮助。
根据ResourceRef_abtcoreDataSource id检查类条目。看来是的
你好组织。日食码头。加jndi。资源-
简单地说。我希望有一个oracle jndi数据源可用于带有连接池的webapp。我想maven安装该项目,然后手动将其部署到jetty hightide 7。xx服务器并运行。我在WEB-INF文件夹中放置了一个jetty env文件,如下所示。 这是我的dataSource bean... Maven安装很好,但当我部署到jetty服务器并启动它时,我会遇到以下错误。 我已经在jetty pl
更具体地说,我得到了包含所有依赖项的可执行war。应用程序在没有jndi数据源的情况下启动,就像一个魅力一样,用jndi数据源运行它失败了。我认为在这样的配置中没有jetty.xml的位置,因此jetty-env.xml也不适用,因为jetty在默认情况下不会读取它。我试图使用jetty-web.xml进行jndi数据源配置,但jetty未能部署应用程序,返回503错误代码。我用的是9-M4型飞机
我已经为使用外部Tomcat的Spring Boot应用程序的JNDI数据源连接进行了bellow提到的配置。 context.xml类似 为spring boot定义了Application.Properties 更新了web.xml,如
如果有人能帮助我纠正代码中的问题,我将不胜感激。不知道我哪里错了。 当前我的persistence.xml包含
问题内容: 我正在使用带有标准MySQL连接器API的Jetty 9.2(嵌入式),并且对应该如何设置它感到非常困惑。目前,我的 web.xml 文件中包含以下内容: …这在我的jetty-env.xml中: …然后执行以下代码初始化: 当我尝试启动服务器时,出现错误。我已经在代码初始化中尝试了许多不同的字符串变体,例如删除了对对象的调用,但是我只是不断地获得相同错误的变体,只是值不同。 这两个x
我在Jetty服务器上的JNDI配置有问题。我无论如何都不能配置它,使Spring(3.0.5)之后可以检索JNDI变量。 我有一些凭证,我不想存储在属性中,这样它就不会存在于git repo中。我的web应用程序正在Jetty(最新版本9.2.3)上运行,因此我想到了在Jetty web应用程序上下文中存储这些凭证的想法。Jetty通过。所以我创建了jetty env。我的WEB-INF/中的x