当前位置: 首页 > 知识库问答 >
问题:

添加eclipselink工件时在Weblogic 12.2.1中自动注册Jax-RS

后树
2023-03-14

我在最新的Weblogic服务器12.2.1.2版本中观察到一个非常奇怪的行为。当将eclipselink依赖项添加到Java servlet应用程序时,Weblogic server将自动触发/resources/*路径下的Jax-RS Jersey REST服务。

如果您遵循了上面的说明,基本上您唯一的依赖是

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

和Helloworld作为应用程序中唯一的类。您可以将它部署到任何服务器上,它将运行良好。

现在您将另一个依赖项添加到maven pom文件中。它是eclipselink工件,如下所示:

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>2.5.2</version>
    </dependency>

部署war文件时,服务器将记录以下内容:

<May 23, 2017, 2:42:47,343 PM MST> <Warning> <JAXRSIntegration> <BEA-2192511> 
<The list of resource packages: org.eclipse.persistence.jpa.rs.exceptions;org.eclipse.persistence.jpa.rs.resources;org.eclipse.persistence.jpa.rs.resources.unversioned> 

这样做的影响是,如果您遵循惯例并将所有javascript和css文件存储在/resources/path下,而不是提供这些静态文件,服务器将尝试通过JAX-RS服务处理这些请求,最终返回404 not found。

我尝试了不同的配置:不同的服务器、不同版本的Weblogic服务器、Toplink而不是eclipselink、eclipselink的不同版本,以及许多其他的东西,为了简单起见,我不在这里提及。显然,我们有一个运行在Weblogic早期版本中的工作应用程序,我们需要将其迁移到最新版本的Weblogic。花了很多天时间才把问题定位到这一个依赖项上。无论如何,这个问题只存在于WebLogic12.2.*中,任何版本的eclipselink都是依赖项。

我对每个人显而易见的问题是:为什么会发生这种情况?有人经历过同样的问题吗?你的解决方案是什么?

共有1个答案

朱梓
2023-03-14

为了澄清我的错误和解决方案,我在Weblogic 12.2.1.2中没有这个错误(/resources/*path),但在12.2.1.3中有,在我的组织将它升级(到12.2.1.3)后,我注意到了这个新的路径/resoures/*。

因为我的war中包含了EclipseLink.jar,所以我尝试了“Oracode”的建议,所以我在POM中指定了“提供”的范围,然后构建新的war,但这并不影响结果。我还是有问题。

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>eclipselink</artifactId>
  <version>2.5.1</version>
  <scope>provided</scope>
</dependency>

但是,对我有效的解决方案是:在web.xml中添加init-param部分。

<servlet>
  <servlet-name>jersey</servlet-name>
  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>com.xxxxxx.xxx.xxx.xxx</param-value>
  </init-param>   
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>jersey</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>  
 类似资料:
  • 在JavaEE环境中,我将JPA2.1实现与EclipseLink一起使用, CarColor转换器: persistence.xml > 当我在persistence.xml文件上注释转换器的声明,并试图将我的实体持久化到数据库中时,会出现这样的错误:“请确保转换器类名正确,并且存在于持久化单元定义中。”并且没有编译时间异常,只有一个非常明确的警告:

  • 我有WebLogic服务器版本:12.2.1.2.0和JBoss BPM套件版本6.4.0 我尝试部署business central。war应用程序到WebLogic服务器。迪福商业中心。战争有网络。使用此servlet的xml地址: 从doc WebLogic我看到,business-central.war正确构建,但部署到服务器后,url更改为 /resources/,WebLogic写[

  • 问题内容: 我在AngularJS中具有以下 静态 形式: Angular为我创建了一个FormController并将其发布到范围内(在表单名称下)。这意味着我可以访问以下属性: 这超级有用! 但就我而言,我正在使用指令 动态 构建表单: 该指令不解决实际元素,直到一段时间后(我已经从服务器获得的一些数据,链接的指令等)。 这里的问题是在表单控制器上没有定义任何字段属性,就像动态字段未向Form

  • 问题内容: 通过使用文件中的以下代码块 我能够生成具有以下文件内容的文件 我想知道如何在生成的文件中添加评论?例如,生成的属性应具有以下内容: 我如何使用Ant来动态地做到这一点? 问题答案: 不支持编写带有多个注释的属性文件。为什么呢 PropertyFile.java ant属性文件任务由一个类支持,该类使用store()方法存储注释。从任务中仅提取一条注释,并将其传递给类以保存到文件中。 解

  • 我在战争中动态加载一个罐子。这个jar包含一些我想注册为bean的java类。代码看起来像 动态加载jar文件 加载类并将其注册为Spring应用程序上下文中的bean 然而,这将加载dao类。现在,当我加载依赖于dao类的服务类时,它会失败,出现以下异常 原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到

  • 本文向大家介绍js动态往表格的td中添加图片并注册事件,包括了js动态往表格的td中添加图片并注册事件的使用技巧和注意事项,需要的朋友参考一下 这回的小case如题,额外还有一个,当点击图片时响应事件。代码如下: 在body中的onload事件调用上面这个函数就可以了。