カスタムクラスジェネレーターがあります。このジェネレーターでは、2 つのクラスを作成します
public class WsRpcServerGenerator extends Generator{
@Override
public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException {
JClassType classType;
try {
classType = context.getTypeOracle().getType(typeName);
SourceWriter src;
try {
// generating first file xxxAsync for client
src = generateMethod( classType, context, logger);
// generating second class for server side
SourceWriter src2 = generateMethodArgs( classType, context, logger);
if (src2!=null)
src2.commit(logger);
} catch (Exception e) {}
// returning first class for client
if (src == null)return typeName + "__AsyncWsRpcGenerated";
src.commit(logger);
return typeName + "__AsyncWsRpcGenerated";
} catch (NotFoundException e) {}
}
}
私が使う
TestObject obj = GWT.create(TestObject.class);
これは仕事です。gwt は 2 つのファイルを生成しました。最初にクライアントにロードされます。
しかし、サーバー側で2番目のファイルをロードする方法がわかりません。可視性で生成されたクラスのためにEclipseでプロジェクトを更新すると、クラスがtest=Class.forName("com.xxx.TestObject__ArgsGenerated");
. しかし、プロジェクト、そのライブラリを更新しません。
ありがとう