Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
Eclipse slf4j与GWT冲突_Eclipse_Gwt_Hive - Fatal编程技术网

Eclipse slf4j与GWT冲突

Eclipse slf4j与GWT冲突,eclipse,gwt,hive,Eclipse,Gwt,Hive,我正在eclipse中进行一个GWT项目,该项目从网页调用ApacheHive。架构是这样的 在GWT项目中。使用将在网页上放置配置单元查询。该网页使用GWT RPC将此查询发送到服务器类。服务器调用另一个eclipse项目中的另一个java类。这个项目有配置单元jdbc驱动程序,它调用在VM(CDH3)上运行的配置单元 我编写了一个单元测试,调用GWT服务器类并发送一个配置单元查询,它执行得很好,但是当我运行项目并尝试从网页发送查询时。它抛出一个运行时错误。它似乎与包含HiveJDBC驱动程序

我正在eclipse中进行一个GWT项目,该项目从网页调用ApacheHive。架构是这样的

在GWT项目中。使用将在网页上放置配置单元查询。该网页使用GWT RPC将此查询发送到服务器类。服务器调用另一个eclipse项目中的另一个java类。这个项目有配置单元jdbc驱动程序,它调用在VM(CDH3)上运行的配置单元

我编写了一个单元测试,调用GWT服务器类并发送一个配置单元查询,它执行得很好,但是当我运行项目并尝试从网页发送查询时。它抛出一个运行时错误。它似乎与包含HiveJDBC驱动程序的第二个eclipse项目中的slf4j类存在一些冲突。我猜,在运行时调用的GWT服务器类与其他项目中包含的slf4j类之间存在一些冲突。顺便说一句,第二个项目包含在第一个项目的构建路径中,而不是另一个项目

以下是错误:

[WARN] Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.unitest.client.GreetingService.greetServer(java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: java.lang.NoClassDefFoundError: Could not initialize class org.apache.thrift.transport.TSocket
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.thrift.transport.TSocket
    at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:92)
    at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
[WARN]调度传入RPC调用时出现异常
com.google.gwt.user.server.rpc.UnexpectedException:服务方法'public abstract java.lang.String com.unitest.client.GreetingService.greetServer(java.lang.String)抛出java.lang.IllegalArgumentException'抛出意外异常:java.lang.NoClassDefFoundError:无法初始化类org.apache.thrift.transport.TSocket
位于com.google.gwt.user.server.rpc.rpc.encodeResponseForFailure(rpc.java:385)
位于com.google.gwt.user.server.rpc.rpc.invokeAndEncodeResponse(rpc.java:588)
位于com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
位于com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
位于com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
位于org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
位于org.mortbay.jetty.Server.handle(Server.java:324)
位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
位于org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
位于org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
位于org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
位于org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
位于org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
原因:java.lang.NoClassDefFoundError:无法初始化类org.apache.thrift.transport.TSocket
位于org.apache.hadoop.hive.jdbc.HiveConnection.(HiveConnection.java:92)
位于org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
位于java.sql.DriverManager.getConnection(未知源)
位于java.sql.DriverManager.getConnection(未知源)

您的服务器端依赖项必须位于GWT项目的
WEB-INF/lib
中(就像任何其他WAR一样)。

Hmmmm!我不知道。我是网络开发新手。有没有一种方法可以在不修改项目结构的情况下将其他eclipse项目放入Web Inf/lib中。如果您没有使用Maven或类似的内置依赖关系管理的构建系统,那么您必须将其他项目打包为JAR(顺便说一句,eclipse中的菜单中应该有一个选项)然后将这个JAR复制到
WEB-INF/lib
(每次修改其他项目时都要冲洗并重复)哈!事实证明这不是它不起作用的原因。我在HiveJDBC项目中创建了另一个存根函数,并从网页中调用了它,效果很好。这个问题与蜂巢有关。当我实例化与Hive的连接时,似乎触发了异常。下面是代码con=DriverManager.getConnection(“jdbc:hive://“+ipAddress+”:“+port+”/default“,”,”)//这是引发异常的语句。