@H_502_1@我有一个使用gwt-maven-archetype构建的Maven项目.虽然它与mvn gwt:run目标运行完美,但是当我尝试在tomcat7容器中运行它时mvn tomcat:run或mvn gwt:compile&& mvn tomcat:运行它不加载GWT动态创建的小部件.
根据谷歌Chrome控制台,它找不到* .nocache.js文件,即使在/ target /文件夹中它正好在预期的位置.
我目前正在尝试在入口点模块中显示一个简单的“Hello”标签:
GWT入口点
public class Hello implements EntryPoint { public void onModuleLoad() { Label hello = new Label("TESTESTSTSTS"); RootPanel.get("helloContainer").add(hello); } }
*.html的
<html> <head> <Meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link type="text/css" rel="stylesheet" href="veltisto.css"> <title>Web Application Starter Project</title> <script type="text/javascript" language="javascript" src="veltisto/veltisto.nocache.js"></script> </head> <body> <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe> <noscript> <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif"> Your web browser must have JavaScript enabled in order for this application to display correctly. </div> </noscript> <div id="helloContainer"></div> </body> </html>
的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- POM file generated with GWT webAppCreator --> <modelVersion>4.0.0</modelVersion> <groupId>gr.veltisto</groupId> <artifactId>web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>GWT Maven Archetype</name> <properties> <!-- Convenience property to set the GWT version --> <gwtVersion>2.4.0</gwtVersion> <!-- GWT needs at least java 1.5 --> <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-servlet</artifactId> <version>${gwtVersion}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-user</artifactId> <version>${gwtVersion}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> <classifier>sources</classifier> <scope>test</scope> </dependency> <dependency> <groupId>com.github.gwtbootstrap</groupId> <artifactId>gwt-bootstrap</artifactId> <version>2.0.4.0</version> </dependency> </dependencies> <build> <!-- Generate compiled stuff in the folder used for developing mode --> <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory> <plugins> <!-- Copy static web files before executing gwt:run --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <executions> <execution> <phase>compile</phase> <goals> <goal>exploded</goal> </goals> </execution> </executions> <configuration> <webappDirectory>${webappDirectory}</webappDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.0</version> <configuration> <path>/veltisto</path> </configuration> </plugin> <!-- GWT Maven Plugin --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>gwt-maven-plugin</artifactId> <version>2.4.0</version> <executions> <execution> <goals> <goal>compile</goal> </goals> </execution> </executions> <!-- Plugin configuration. There are many available options,see gwt-maven-plugin documentation at codehaus.org --> <configuration> <runTarget>veltisto.html</runTarget> <hostedWebapp>${webappDirectory}</hostedWebapp> </configuration> </plugin> </plugins> </build> </project>
* .GWT.XML
<module rename-to='veltisto'> <!-- Inherit the core Web Toolkit stuff. --> <inherits name='com.google.gwt.user.User' /> <inherits name="com.google.gwt.uibinder.UiBinder" /> <!-- We need the JUnit module in the main module,--> <!-- otherwise eclipse complains (Google plugin bug?) --> <inherits name='com.google.gwt.junit.JUnit' /> <!-- Inherit the default GWT style sheet. You can change --> <!-- the theme of your GWT application by uncommenting --> <!-- any one of the following lines. --> <inherits name='com.google.gwt.user.theme.standard.Standard' /> <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> --> <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> --> <!-- Other module inherits --> <inherits name="com.google.gwt.uibinder.UiBinder" /> <inherits name="com.github.gwtbootstrap.Bootstrap" /> <!-- Specify the app entry point class. --> <entry-point class='gr.veltisto.web.client.Hello' /> <!-- Specify the paths for translatable code --> <source path='client' /> <source path='shared' /> </module>
解决方法
tomcat7:run只使用src / main / webapp.你将要使用tomcat7:run-war(将执行一个包)或tomcat7:run-war-only(如果你已经有一个war:爆炸结构).