Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT 1.7-在Jetty中配置数据源(托管模式)_Java_Gwt_Jetty_Jndi - Fatal编程技术网

Java GWT 1.7-在Jetty中配置数据源(托管模式)

Java GWT 1.7-在Jetty中配置数据源(托管模式),java,gwt,jetty,jndi,Java,Gwt,Jetty,Jndi,我是GWT(1.7)的新手,尝试从servlet建立到MySQL数据库的连接。因为我发现了一些错误,我在谷歌上搜索发现,我必须在Jetty中配置一个数据源,使其在托管模式下工作。我遵循了本教程: 我按照描述创建了自己的JettyLancher类,并根据运行配置添加了相应的参数。之后,我将此条目添加到我的WEB-INF/WEB.xml中: <resource-ref> <description>MySQl Connection</des

我是GWT(1.7)的新手,尝试从servlet建立到MySQL数据库的连接。因为我发现了一些错误,我在谷歌上搜索发现,我必须在Jetty中配置一个数据源,使其在托管模式下工作。我遵循了本教程:

我按照描述创建了自己的JettyLancher类,并根据运行配置添加了相应的参数。之后,我将此条目添加到我的WEB-INF/WEB.xml中:

    <resource-ref>      
     <description>MySQl Connection</description> 
        <res-ref-name>jdbc/skyline</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>  
    </resource-ref>

MySQl连接
jdbc/skyline
javax.sql.DataSource
容器
之后,我创建了jetty-env.xml,其中包含以下内容:

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">

<Configure class="org.mortbay.jetty.webapp.WebAppContext">

 <New id="skyline" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>jdbc/skyline</Arg>
    <Arg>
     <New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
                 <Set name="Url">jdbc:mysql://localhost:3306/skyline</Set>
                 <Set name="User">root</Set>
                 <Set name="Password">admin</Set>
     </New>
    </Arg>
   </New>

</Configure>

jdbc/skyline
jdbc:mysql://localhost:3306/skyline
根
管理
当我现在尝试在eclipse(Galileo,带有GWT插件)中启动应用程序时,我得到以下错误:

[WARN] Configuration problem at <resource-ref><description>MySQl Connection</description><res-ref-name>jdbc/skyline</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>
java.lang.ClassCastException: org.mortbay.jetty.plus.naming.Resource cannot be cast to org.mortbay.jetty.plus.naming.NamingEntry
    at org.mortbay.jetty.plus.naming.NamingEntry.lookupNamingEntry(NamingEntry.java:211)
    at org.mortbay.jetty.plus.naming.NamingEntry.bindToENC(NamingEntry.java:104)
    at org.mortbay.jetty.plus.webapp.Configuration.bindResourceRef(Configuration.java:73)
    at org.mortbay.jetty.plus.webapp.AbstractConfiguration.initResourceRef(AbstractConfiguration.java:262)
    at org.mortbay.jetty.plus.webapp.AbstractConfiguration.initWebXmlElement(AbstractConfiguration.java:161)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:289)
    at org.mortbay.jetty.plus.webapp.AbstractConfiguration.initialize(AbstractConfiguration.java:133)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222)
    at org.mortbay.jetty.plus.webapp.AbstractConfiguration.configure(AbstractConfiguration.java:113)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlConfiguration.java:180)
    at org.mortbay.jetty.plus.webapp.AbstractConfiguration.configureWebApp(AbstractConfiguration.java:96)
    at org.mortbay.jetty.plus.webapp.Configuration.configureWebApp(Configuration.java:124)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1217)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
    at skyline.frontend.server.helper.CustomJettyLauncher$WebAppContextWithReload.doStart(CustomJettyLauncher.java:412)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:222)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
    at skyline.frontend.server.helper.CustomJettyLauncher.start(CustomJettyLauncher.java:464)
    at com.google.gwt.dev.HostedMode.doStartUpServer(HostedMode.java:365)
    at com.google.gwt.dev.HostedModeBase.startUp(HostedModeBase.java:590)
    at com.google.gwt.dev.HostedModeBase.run(HostedModeBase.java:397)
    at com.google.gwt.dev.HostedMode.main(HostedMode.java:232)
MySQl连接jdbc/skylinejavax.sql.DataSourceContainer上的配置问题 java.lang.ClassCastException:org.mortbay.jetty.plus.naming.Resource不能强制转换为org.mortbay.jetty.plus.naming.NamingEntry 位于org.mortbay.jetty.plus.naming.NamingEntry.lookupNamingEntry(NamingEntry.java:211) 位于org.mortbay.jetty.plus.naming.NamingEntry.bindToENC(NamingEntry.java:104) 位于org.mortbay.jetty.plus.webapp.Configuration.bindResourceRef(Configuration.java:73) 位于org.mortbay.jetty.plus.webapp.AbstractConfiguration.initResourceRef(AbstractConfiguration.java:262) 位于org.mortbay.jetty.plus.webapp.AbstractConfiguration.initWebXmlElement(AbstractConfiguration.java:161) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:289) 位于org.mortbay.jetty.plus.webapp.AbstractConfiguration.initialize(AbstractConfiguration.java:133) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222) 位于org.mortbay.jetty.plus.webapp.AbstractConfiguration.configure(AbstractConfiguration.java:113) 位于org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlConfiguration.java:180) 位于org.mortbay.jetty.plus.webapp.AbstractConfiguration.configureWebApp(AbstractConfiguration.java:96) 位于org.mortbay.jetty.plus.webapp.Configuration.configureWebApp(Configuration.java:124) 位于org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1217) 位于org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513) 位于org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) 位于skyline.frontend.server.helper.CustomJettyLancher$WebAppContextWithReload.doStart(CustomJettyLancher.java:412) 位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 位于org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 位于org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115) 位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 位于org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 位于org.mortbay.jetty.Server.doStart(Server.java:222) 位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 位于skyline.frontend.server.helper.CustomJettyLancher.start(CustomJettyLancher.java:464) 在com.google.gwt.dev.HostedMode.doStartUpServer(HostedMode.java:365) 在com.google.gwt.dev.HostedModeBase.startUp(HostedModeBase.java:590) 在com.google.gwt.dev.HostedModeBase.run(HostedModeBase.java:397) 位于com.google.gwt.dev.HostedMode.main(HostedMode.java:232) 我使用jetty-naming-6.1.11.jar和jetty-plus-6.1.11.jar。两者都在WEB-INF/lib目录中。我已经尝试了两个库的更新版本,结果相同


有人能告诉我,我哪里出错了吗?

如果你得到了
ClassCastException
s你不应该得到的地方(比如这里的
org.mortbay.jetty.plus.naming.Resource
extends
org.mortbay.jetty.plus.NamingEntry
),你有一个类路径问题,这意味着有两个版本的
org.mortbay.jetty.plus.naming.Resource
是由jetty实例中的不同类装入器从两个不同的JAR文件装入的


我不知道GWT,但您通常不必在应用程序的
WEB-INF/lib
文件夹中包含任何Jetty jar,因为它们都存在于Jetty中。

是的,这通常是原因。Jetty中不包含这些.jar文件,它们是用于支持JNDI查找资源的附加插件