GWTの新機能です。複雑なアプリケーションのUI部分を保持するプロジェクトを設定しています。 JPAデータオブジェクトは、MyBatisで生成されたPOJOを使用して別のプロジェクトで定義されます。 JPAオブジェクトのソースコードを必要とするので、ビルドプロセスのgwtcの手順は続行できません。これは、「シリアル化可能」を実装するためにJPAオブジェクトを手動で変更した後に解決しなければならない別の問題です。それらを見つける。別のプロジェクトでGWTでJPAオブジェクトをどのように使用しますか?
ソース '.java'ファイルを含むように 'core'プロジェクトのjarファイルを作成しましたが、これは機能しませんでした。私はclasspath要素をgwtc ant Java呼び出しに追加しようとしました。
別のプロジェクトでJPAオブジェクトを定義したままUIプロジェクトをコンパイルするにはどうすればよいですか?
エラー:
Buildfile: /Users/user/source/user_interface/build.xml
libs:
javac:
gwtc:
[java] Compiling module org.mysite.ui
[java] Validating newly compiled units
[java] [ERROR] Errors in 'file:/Users/user/source/user_interface/src/org/mysite/ui/client/MyService.java'
[java] [ERROR] Line 21: No source code is available for type org.mysite.core.model.Person; did you forget to inherit a required module?
[java] [ERROR] Errors in 'file:/Users/user/source/user_interface/src/org/mysite/ui/client/MyServiceAsync.java'
[java] [ERROR] Line 19: No source code is available for type org.mysite.core.model.Person; did you forget to inherit a required module?
[java] [ERROR] Errors in 'file:/Users/user/source/user_interface/src/org/mysite/ui/client/presenter/MainTabPresenter.java'
[java] [ERROR] Line 75: No source code is available for type org.mysite.core.model.Person; did you forget to inherit a required module?
[java] Scanning for additional dependencies: file:/Users/user/source/user_interface/src/org/mysite/ui/client/MyApp.java
[java] Computing all possible rebind results for 'org.mysite.ui.client.MyService'
[java] Rebinding org.mysite.ui.client.MyService
[java] Checking rule <generate-with class='com.google.gwt.user.rebind.ui.ImageBundleGenerator'/>
[java] [ERROR] Unable to find type 'org.mysite.ui.client.MyService'
[java] [ERROR] Hint: Previous compiler errors may have made this type unavailable
[java] [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
[java] [ERROR] Errors in 'file:/Users/user/source/user_interface/src/org/mysite/ui/client/MyApp.java'
[java] [ERROR] Line 23: Failed to resolve 'org.mysite.ui.client.MyService' via deferred binding
[java] [ERROR] Cannot proceed due to previous errors
BUILD FAILED
/Users/user/source/user_interface/build.xml:39: Java returned: 1
Total time: 26 seconds
のAnt gwtcターゲット:あなたはGWTにPOJOをシリアライズしたい場合
<target name="gwtc" depends="javac" description="GWT compile to JavaScript (production mode)">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="src"/>
<pathelement location="../core/src"/>
<path refid="project.class.path"/>
</classpath>
<!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
<jvmarg value="-Xmx256M"/>
<arg line="-war"/>
<arg value="web"/>
<!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
<arg line="${gwt.args}"/>
<arg value="org.mysite.ui.MyApp"/>
</java>
</target>
.gwt.xmlをデータプロジェクトでコンパイルしてWebプロジェクトと統合する方法の詳細を説明できますか?これは私の状況にとって理想的な解決策のようです。 – Kieveli
だから、私はgwtを追加しました。xmlをデータプロジェクトに追加し、jarを構築し、それを他のプロジェクトにコピーし、Webプロジェクトに「継承」を追加しました。クラスパス上にあるので、gwtはDataModel.gwt.xmlファイルを見つけ、クラスについて知っています。私は本当にこの解決策に近づいています! – Kieveli
gwt.xmlをWebプロジェクトに移動しましたが、データプロジェクトのデータフォルダと同じJavaパッケージに移動しました。別のクラスとソースのjarとしてデータプロジェクトのjarをリリースしました。 GWTは、gwt.xmlによって定義されたパッケージのクラスパスをチェックし、それらをWebプロジェクトでコンパイルします。悪臭のように働く。 – Kieveli