2011-06-29 105 views
2

我在我的應用程序中使用gwt2.0.3版本。此應用程序中有兩個項目。一個用於客戶端,另一個用於服務器端。在客戶端項目我已經提供了服務器端項目的參考。因此,我能夠將服務器端的所有方法和屬性都獲取到客戶端。GWT編譯bean引用(沒有源代碼可用於類型)

我的所有bean都位於服務器端。因此,雖然我在客戶端導入bean,但它沒有給出任何問題。

但在編譯的時候它給referencing.and它給像下面問題的問題:

[錯誤] 錯誤在「文件:/ E:/ NTWrokSpace1June2011 /的AdminClient/src目錄/ COM/nextenders /client/util/factory/DocumentMetadataFactory.java'

[錯誤]第26行:沒有源代碼可用於com.nextenders.facadeimplementation.beans.metadata.Table類型;你忘了繼承一個必需的模塊嗎?

你好全部 我在我的應用程序中使用gwt2.0.3版本。在這個應用程序中有兩個項目。一個用於客戶端,另一個用於服務器端。在客戶端項目中,我已經給出了服務器端項目的參考所以我能夠將服務器端的所有方法和屬性都放到客戶端。

我的所有bean都位於服務器端。因此,雖然我在客戶端導入bean,但它沒有給出任何問題。

但在編譯的時候它給referencing.and它給像下面問題的問題:

[錯誤] 錯誤在「文件:/ E:/ NTWrokSpace1June2011 /的AdminClient/src目錄/ COM/nextenders /client/util/factory/DocumentMetadataFactory.java'

[錯誤]第26行:沒有源代碼可用於com.nextenders.facadeimplementation.beans.metadata.Table類型;你忘了繼承一個必需的模塊嗎?

這裏AdminClient是我的客戶項目。

和com.nextenders.facadeimplementation.beans.metadata包在服務器端。而在導入時,它不會給出任何問題。

但編譯時間是給出問題。

請幫我解決這個問題。

+0

我解決了一些其他trick.So的解決方案,我想和大家分享它。我做了另一個GWT項目和推杆所有的豆類在project.Followed這個步驟右擊項目>選擇屬性>庫選項卡>添加其他項目 然後轉到項目選項卡>添加其他項目 把它放在project.gwt.xml文件中 - > 轉到調試配置>項目>類路徑>用戶條目>添加項目 然後添加src文件夾> g oto高級>添加文件夾>選擇src文件夾 –

回答

1

我懷疑你的問題的一部分是在你的模塊定義。 GWT編譯器會查看你在模塊文件中定義的源代碼路徑,以確定試圖編譯成Javascript的類。您可能從客戶端代碼引用Table類,但該模塊不存在於模塊xml文件中指定的任何源路徑中。

讓豆子在一個單獨的項目中可能會導致問題,但我沒有自己測試過。在你的模塊文件中指定的源路徑是相對路徑而不是我認爲的包路徑,所以它可能根本不起作用。

+0

我也試過把一個Jar在客戶端的bean,仍然沒有工作。任何工作? –

+1

最好的辦法是讓您的服務器和客戶端代碼與Peter建議的項目設置保持一致。這允許Google編譯器抓取正確的目錄。我不認爲它有能力選擇性地抓取jar文件來查找客戶端兼容的代碼。 –

1

該錯誤消息指示所述類

com.nextenders.facadeimplementation.beans.metadata.Table; 

引用(進口)一種或不能由GWT被編譯爲JavaScript多個Java類。

+0

當我開始編譯時會出現這個問題。並且如果我在客戶端項目中放置了一個jar的jar,它就可以正常工作。那時候它得到了引用。我沒有得到eclipse沒有在導入它們時遇到任何問題,但編譯GWT編譯器時無法獲取bean的引用? –

+2

沒有gwt編譯器不能簡單地交叉編譯從java到javascript的所有內容都有限制。例如,當你的客戶端有一個導入java.util.calendar的時候,你不能在你的客戶端使用任何java類,因爲gwt不能將java.util.calendar編譯成javascript ... –

1

正常的方法是將您的項目分爲三個包:server,clientshared

client你把GWT碼,在server顯然是服務器代碼。在shared中,您放置屬於客戶端和服務器的代碼:最顯着的是通過RPC的類。

你必須告訴GWT你的來源在哪裏。你必須引用您的.gwt.xml這兩個(如果你的gwt.xml文件是略高於客戶端文件夾和共享):

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

如果你使用Maven,那麼它會幫助你。

帶有參數compileSourcesArtifactsmaven-gwt-plugin將下載-sources.jar並且編譯GWT模塊而不向所產生的jar添加源。

例的pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 

    <dependencies> 
     <dependency> 
      <groupId>com.my.group</groupId> 
      <artifactId>my-artifact</artifactId> 
      <version>1.0</version> 
     </dependency> 
    </dependencies> 

    <!-- ... --> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>gwt-maven-plugin</artifactId> 
       <version>2.5.0</version> 
       <!-- ... --> 
       <configuration> 
        <compileSourcesArtifacts> 
         <compileSourcesArtifact>com.my.group:my-artifact</compileSourcesArtifact> 
        </compileSourcesArtifacts> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
相關問題