GWT:在为托管模式生成类时,是否不尊重包结构?

时间:2012-02-16 19:47:48

标签: gwt filenotfoundexception gwt-hosted-mode gwt-maven-plugin

我有一个gwt应用程序使用gwt-maven-plugin 1.2版

我可以生成我的应用并运行生成的战争但是当我使用mvn gwt:run运行托管模式时,它会中断:

java.io.FileNotFoundException: D:\workspaceTempo\TempoUI\war\WEB-INF\classes\net\stinfoservices\axsens\tempo\ui\log4j\log4j.xml (The system cannot find the path specified)
[ERROR]     at java.io.FileInputStream.open(Native Method)
[ERROR]     at java.io.FileInputStream.<init>(FileInputStream.java:120)
[ERROR]     at java.io.FileInputStream.<init>(FileInputStream.java:79)
[ERROR]     at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
[ERROR]     at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
[ERROR]     at org.apache.log4j.xml.DOMConfigurator$2.parse(DOMConfigurator.java:765)
[ERROR]     at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:866)
[ERROR]     at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:773)
[ERROR]     at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:901)
[ERROR]     at org.springframework.util.Log4jConfigurer.initLogging(Log4jConfigurer.java:70)
[ERROR]     at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:152)
[ERROR]     at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:47)
[ERROR]     at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543)
[ERROR]     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
[ERROR]     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
[ERROR]     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
[ERROR]     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
[ERROR]     at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:447)
[ERROR]     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
[ERROR]     at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[ERROR]     at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
[ERROR]     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
[ERROR]     at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[ERROR]     at org.mortbay.jetty.Server.doStart(Server.java:222)
[ERROR]     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
[ERROR]     at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:543)
[ERROR]     at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:421)
[ERROR]     at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1035)
[ERROR]     at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783)
[ERROR]     at com.google.gwt.dev.DevMode.main(DevMode.java:275)

我在war / WEB-INF / classes下查看并且包结构已损坏,每个类和资源都生成但不在各自的包/文件夹中。

编辑:抱歉,我忘了包含pom.xml文件,这里是:http://pastebin.com/C9kRJ5GN

到底是怎么回事?!?你有没有经历过这个?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

我认为(但我可能错了)这是你的maven项目的正常行为:你没有在你的pom.xml中声明一些<resources>,所以资源不会被复制到你的war目录中。

请参阅http://maven.apache.org/pom.html#Resources

以避免您的问题:

  1. 添加目录src/main/resources
  2. log4j.xml
  3. 内复制src/main/resources/net/stinfoservices/axsens/tempo/ui/log4j
  4. 修改您的pom.xml:在<resources>标记内添加<build>标记,并将src/main/resources指定为<directory>