从Tomcat 7切换到JBoss 4.2.1后实现界面问题

发布于 2024-12-05 02:35:48 字数 1696 浏览 4 评论 0原文

我使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

じ违心 2024-12-12 02:35:48

如果您使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文