在不同包装下的两个不同罐子中的相同类。它会在应用程序执行中引起任何问题吗?

时间:2014-01-07 15:51:52

标签: java deployment jar weblogic11g

在weblogic服务器中运行我的应用程序时遇到问题。我在不同包装下的两个不同的罐子里有相同的类。它会在运行时引发任何问题吗?

注意:我没有遇到任何构建问题。

对不起。如果我把你们搞糊涂了

提前谢谢

3 个答案:

答案 0 :(得分:1)

如果完全分类的类名(又名包+类名)不同,那么根本就没有问题。 Java通过包括包(也称为FQCN)的完整名称来区分类。如果两个罐子包含相同的FQCN,那么它取决于类加载器的顺序设置。在app server中部署新耳(war)时,可以指定顺序。有关weblogic的更多信息:http://docs.oracle.com/cd/E11035_01/wls100/programming/classloading.html

答案 1 :(得分:1)

在使用不同的完全限定类名时,不能存在与类相关的直接问题。但是,CDI可能存在问题。 请记住,Inject可以应用于许多资源,并且注入目标可以具有接口的类型,而不是具有实现类的类型。 当确定要对哪个对象进行实例化时,应用服务器/ CDI容器可能会遇到问题,当突然可能在部署之后可能有更多的接口实现时,例如,两者都注释了相同或默认的限定符,虽然这里预期会有异常,而是随机注入一个类或另一个类。

答案 2 :(得分:0)

只要它们在不同的名称空间内,就不会因为在不同的东西中使用相同的类而产生问题,因为它们将具有名称:package.class。如果我在哪里,我会寻找运行时错误的不同原因。

我可以问一下是什么让你认为这是问题所在?你有没有日志或错误引用这些特定的类?