2013-01-18 12 views
1

我們有一個GWT應用程序。使用Maven 3,我們構建並運行GWT應用程序。 當我們在Windows 7上構建和運行並在Windows上的IE上進行測試時,該應用程序運行良好。但是,當我們在Linux上編譯和運行應用程序,然後在Windows上測試IE時,應用程序看起來有所不同。 要排除客戶端問題:我們測試的是完全相同的客戶端 - Windows 7上的Internet Explorer。 進一步調查顯示,Linux服務器上的Javascript與Windows服務器上的Javascript不同。GWT編譯器在Linux和Windows中的行爲不同

有誰知道爲什麼GWT在Linux和Windows上表現不同?我們能做什麼使GWT在Windows和Linux上表現相同。 我們使用Maven 3編譯並運行gwt。

這裏的GWT的插件配置:

 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>gwt-maven-plugin</artifactId> 
    <version>2.5.0</version> 
    <executions> 
    <execution> 
     <goals> 
     <goal>compile</goal> 
     <goal>i18n</goal> 
     <goal>generateAsync</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <runTarget>MyApplication.html</runTarget> 
    <hostedWebapp>${webappDirectory}</hostedWebapp> 
    <i18nMessagesBundle>nl.my.app.client.Messages</i18nMessagesBundle> 
    <inplace>true</inplace> 
    </configuration> 
</plugin> 

和這裏的模塊配置:

 
<?xml version="1.0" encoding="UTF-8"?> 
<module rename-to='MyApplication'> 
    <inherits name='com.google.gwt.user.User' /> 
    <inherits name="com.google.gwt.i18n.I18N" /> 
    <inherits name='nl.my.module' /> 
    <inherits name="com.sencha.gxt.ui.GXT" /> 
    <inherits name="com.google.common.collect.Collect" /> 
    <inherits name='com.google.gwt.user.Debug' /> 
    <inherits name='nl.my.othermodule' /> 

    <entry-point class='nl.my.MYApplication' /> 

    <source path='client' /> 
    <source path='shared' /> 

    <set-configuration-property name="UiBinder.useSafeHtmlTemplates" value="true" /> 

    <extend-property name="locale" values="nl_NL" /> 
</module> 

的應用是建立和使用下面的命令來運行: MVN GWT:運行

+2

哪些編譯輸出之間的差別:

問題是通過增加應用程序的單一HTML文件頭部分以下解決了嗎? –

回答

0

我們發現問題 - 兼容模式:正如問題中所述,問題只發生在Internet Explorer(IE)中。當我們通過非本地地址訪問應用程序時,IE的兼容模式自動啓用。在兼容模式下,IE的行爲略有不同。這就是爲什麼當我們通過localhost訪問應用程序 - 在我們的開發工作站上 - 兼容性模式沒有被IE啓用,應用程序看起來應該如此。

<meta http-equiv="X-UA-Compatible" content="IE=edge" > 
0

您可能在兩個不同的系統上有不同的JDK。確保maven使用的JDK是相同的。

+0

我在Linux上使用OpenJDK 6,在Windows上使用Oracle/JDK 6。所以這可能會導致差異。我會嘗試 – Gerbrand

+0

不起作用。我剛剛下載並安裝了Oracle的JDK 6 for Linux。乾淨的編譯後,我仍然有同樣的問題 – Gerbrand

+1

用mvn -e開關運行調試日誌,看看哪個JDK被拿起。在兩個平臺上運行並比較日誌。 –

相關問題