Java 从Tomcat 7切换到JBoss 4.2.1后实现接口问题
我使用Tomcat7在Eclipse中创建了一个动态web项目(我使用了动态web模块版本3.0和JSF2.0)。现在,当我不得不从tomcat 7切换到JBoss 4.2.1时,似乎存在某种兼容性问题,因为JBoss不支持动态web模块版本3.0,而是2.5和JSF 1.2,而不是我使用的JSF 3.0。因此,当我试图在将使用JBoss的新项目中部署我的旧项目时,出现了一个奇怪的错误: 我有一个Java 从Tomcat 7切换到JBoss 4.2.1后实现接口问题,java,jsf-2,tomcat7,jsf-1.2,jboss-4.2.x,Java,Jsf 2,Tomcat7,Jsf 1.2,Jboss 4.2.x,我使用Tomcat7在Eclipse中创建了一个动态web项目(我使用了动态web模块版本3.0和JSF2.0)。现在,当我不得不从tomcat 7切换到JBoss 4.2.1时,似乎存在某种兼容性问题,因为JBoss不支持动态web模块版本3.0,而是2.5和JSF 1.2,而不是我使用的JSF 3.0。因此,当我试图在将使用JBoss的新项目中部署我的旧项目时,出现了一个奇怪的错误: 我有一个DBManager类,它实现了两个接口(usermanageble和CategoryManageab
DBManager
类,它实现了两个接口(usermanageble
和CategoryManageable
)。在usermanageble
中,我有一个方法void doInsert(User-User)
,doUpdate(User)
,等等。但是eclipse告诉我有一个错误,并提供了两个解决方案:第一个是删除@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
....
}
....
}
界面usermanaged
:
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();
}
package jsfDP.interfaces;
import java.util.List;
import jsfDP.beans.Category;
public interface CategoryManageable {
List<Category> getCagegories();
}
如果您使用Java1.5运行JBoss(看起来是这样),那么您需要删除注释。接口的
@Override
注释是Java 6和更高版本的特性。p.S.我在WEB-INF/lib中添加了jsf 1.2 libs,但仍然没有什么…这是一个相当大的倒退,必须从Tomcat 7到JBoss 4.xYes它是。。。但我必须这样做:(我对此不确定。C:\Users\user>java-version java version“1.6.0_07”java(TM)SE运行时环境(build 1.6.0_07-b06)java HotSpot(TM)客户端VM(build 10.0-b23,混合模式,共享)删除“@Override”有帮助,类不会抱怨接口的方法实现。