从Tomcat 7切换到JBoss 4.2.1后实现界面问题
我使用 tomcat 7 在 Eclipse 中创建了一个动态 Web 项目(并且我使用了动态 Web 模块版本 3.0 和 JSF 2.0)。现在,当我不得不从 tomcat 7 切换到 JBoss 4.2.1 时,似乎存在某种兼容性问题,因为 JBoss 不允许动态 Web 模块版本 3.0,但允许使用 2.5 和 JSF 1.2,而不是我使用的 JSF 3.0。因此,当我尝试在将使用 JBoss 的新项目中部署我的旧项目时,出现了这个奇怪的错误:
我有这个实现 2 个接口的 DBManager
类(UserManageable
和 >类别可管理
)。在 UserManageable
中,我有一个方法 void doInsert(User user)
、doUpdate(User)
等,但 eclipse 告诉我有一个错误,并且提供了 2 个解决方案:第一个删除 @Override
注释,第二个在其他接口中创建 doInsert(User)
。如果我删除其他接口,它只会为我提供第一个解决方案。
这是类和接口。
import jsfDP.interfaces.CategoryManageable;
import jsfDP.interfaces.UserManageable;
public class DBManager implements UserManageable, CategoryManageable{
@Override
public void doInsert(User user) {
// here I get
// The method doInsert(User) of type DBManager must override a superclass method
// 2 quick fixes available:
// Create doInsert() in supertype 'CategoryManageable'
// Remove '@Override' annotation
....
}
....
}
接口UserManageable
:
import java.util.List;
import jsfDP.beans.User;
public interface UserManageable {
void doInsert(User user);
void doUpdate(User user);
void doDelete(User user);
User getUserById(int userId);
List<Integer> getUserIds();
List<User> getAllUsersInList();
}
接口CategoryManageable
:
package jsfDP.interfaces;
import java.util.List;
import jsfDP.beans.Category;
public interface CategoryManageable {
List<Category> getCagegories();
}
I made a Dynamic web project in Eclipse using tomcat 7 (and I used Dynamic web module version 3.0 and JSF 2.0). Now when I had to switch from tomcat 7 to JBoss 4.2.1 it seems there is some kind of compatibility problem because the JBoss doesn't allow Dynamic web module version 3.0 but 2.5 and JSF 1.2 instead of JSF 3.0 that I used. So when I was trying to deploy my old project in new project that will use JBoss this strange error appeared:
I have this DBManager
class that implements 2 interfaces (UserManageable
and CategoryManageable
). In UserManageable
I have a method void doInsert(User user)
, doUpdate(User)
, etc. but eclipse tells me there is a mistake and offers 2 solutions: 1st to remove the @Override
annotation and 2nd to create doInsert(User)
in the other interface. If I remove the other interface it just offers me the 1st solution.
Here are the class and the interfaces.
import jsfDP.interfaces.CategoryManageable;
import jsfDP.interfaces.UserManageable;
public class DBManager implements UserManageable, CategoryManageable{
@Override
public void doInsert(User user) {
// here I get
// The method doInsert(User) of type DBManager must override a superclass method
// 2 quick fixes available:
// Create doInsert() in supertype 'CategoryManageable'
// Remove '@Override' annotation
....
}
....
}
Interface UserManageable
:
import java.util.List;
import jsfDP.beans.User;
public interface UserManageable {
void doInsert(User user);
void doUpdate(User user);
void doDelete(User user);
User getUserById(int userId);
List<Integer> getUserIds();
List<User> getAllUsersInList();
}
Interface CategoryManageable
:
package jsfDP.interfaces;
import java.util.List;
import jsfDP.beans.Category;
public interface CategoryManageable {
List<Category> getCagegories();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用 Java 1.5 运行 JBoss(看起来是这样),则需要删除该注释。接口的
@Override
注释是 Java 6 及更高版本的功能。If you are running the JBoss with Java 1.5 (and it seems that way), you need to remove the annotation. The
@Override
annotation for interfaces is a Java 6 and later feature.