gpt4 book ai didi

gwt - 不能在 GWT 应用程序中结合 GIN 和自定义 bean 验证器(编译器错误)

转载 作者:行者123 更新时间:2023-12-04 05:53:34 26 4
gpt4 key购买 nike

你们能帮我在 GWT 应用程序(GWT 2.4)中结合 GIN 和自定义 bean 验证器吗?

GWT 编译器给了我以下错误:

Rebind result 'javax.validation.ValidatorFactory' must be a class
Rebind result 'com.google.gwt.validation.client.ProviderValidationMessageResolver' must be a class

我的 GIN 模块看起来像这样
@GinModules(ClientGinModule.class)
public interface ClientGinjector extends Ginjector
{
NewOrderView getOrderView();
}

在哪里 NewOrderView只是扩展 Composite .

在我的 .gwt.xml我的模块有以下说明
<replace-with class="com.mine.courierApp.client.validation.ClientValidatorFactory">
<when-type-is class="javax.validation.ValidatorFactory"/>
</replace-with>
<replace-with class="com.mine.courierApp.client.validation.ClientValidationMessagesResolver">
<when-type-is class="com.google.gwt.validation.client.UserValidationMessagesResolver"/>
</replace-with>

所以我想也许 GIN 想在 Java 代码中知道这一点,所以我修改了我的 GIN 模块,它变成了
public class ClientGinModule extends AbstractGinModule
{
protected void configure()
{
bind(javax.validation.ValidatorFactory.class).to(ClientValidatorFactory.class);
bind(com.google.gwt.validation.client.UserValidationMessagesResolver.class).to(ClientValidationMessagesResolver.class);
}
}

但它并没有帮助,虽然错误信息变得更大:
Rebind result 'javax.validation.ValidatorFactory' must be a class
Rebind result 'javax.validation.ValidatorFactory' must be a class
Cannot proceed due to previous errors
Rebind result 'com.google.gwt.validation.client.ProviderValidationMessageResolver' must be a class

更新:详细的 GWT 编译器输出:
   [ERROR] Errors in 'jar:file:/C:/work/externals/gwt/gwt-user.jar!/com/google/gwt/validation/client/BaseMessageInterpolator.java'
[ERROR] Line 96: Rebind result 'com.google.gwt.validation.client.ProviderValidationMessageResolver' must be a class
[ERROR] Errors in 'jar:file:/C:/work/externals/gwt/gwt-user.jar!/com/google/gwt/validation/client/GwtValidatorContext.java'
[ERROR] Line 36: Rebind result 'javax.validation.ValidatorFactory' must be a class
[ERROR] Errors in 'jar:file:/C:/work/externals/gwt/gwt-user.jar!/com/google/gwt/validation/client/spi/GwtValidationProvider.java'
[ERROR] Line 39: Rebind result 'javax.validation.ValidatorFactory' must be a class
[ERROR] Cannot proceed due to previous errors

我该怎么办 ?

最佳答案

原来我必须定义

<replace-with class="com.mine.courierApp.client.validation.ClientValidatorFactory">
<when-type-is class="javax.validation.ValidatorFactory"/>
</replace-with>
<replace-with class="com.mine.courierApp.client.validation.ClientValidationMessagesResolver">
<when-type-is class="com.google.gwt.validation.client.UserValidationMessagesResolver"/>
</replace-with>

在所有 gwt 模块中,甚至在那些根本不使用验证的模块中。

关于gwt - 不能在 GWT 应用程序中结合 GIN 和自定义 bean 验证器(编译器错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9783170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com