---
title: 确认WebLogic私有功能并修改
description: "WebLogic除了提供标准的Java EE的接口外，还在此基础上实现了一些私有的功能，从开发者的角度来看，WebLogic提供一些私有的API，私有的配置文件和私有的配置项。相关内容需在TomEE上修改。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0094.html
sourcePath: /source/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0094.html
indexId: 0b6525c21e7d5e68dfd09cf59bd6d87e8232a5e9dae7f41cee6e97d3dcf4fbfd65
---
# 确认WebLogic私有功能并修改

#### 确认WebLogic私有功能

WebLogic除了提供标准的Java EE的接口外，还在此基础上实现了一些私有的功能，从开发者的角度来看，WebLogic提供一些私有的API，私有的配置文件和私有的配置项。相关内容需在TomEE上修改。

- 修改私有API
  针对私有的API，通过分析，我们发现其包名都是以com.bea、com.oracle、commonj、oracle、weblogic开头。在移植过程中，可通过正则表达式方式判断源码是否有调用相关接口（“import [com\.bea|com\.oracle|commonj|oracle|weblogic]”）。

  如果有使用私有的API，需要开发者对采用相关私有API的代码功能进行分析，建议使用标准的API进行替换，实现相同功能。

- 修改私有配置文件
  除了标准的配置文件外，WebLogic也存在一些私有的配置文件，这类私有的配置文件一般是以WebLogic开头的，如weblogic.xml,weblogic-application.xml等。可以通过全局搜索是否存在相关的配置文件查看。

  WebLogic的私有配置文件一般是用来支持其私有API的，因此，若使用到了WebLogic私有API，则对应的WebLogic私有配置文件需要具体深入分析，结合替换私有API的工作一起进行。若没有使用WebLogic私有API，则一般没有私有的WebLogic配置文件。


#### 修改私有配置项

同一个配置文件在WebLogic和TomEE上配置项内容可能不同，主要可能的不同点在于各个使用的Java EE组件上的配置或者是cluster上的配置，如：JPA持久化相关的META-INF/persistence.xml。

配置项为WebLogic私有配置项的原因是有些配置需要指定实现类，比如JPA功能有哪一个class来实现、JDBC使用什么驱动。配置项需要仔细排查是否使用WebLogic私有配置（一个取巧判断方法是确认配置项是否包含WebLogic、bea、oracle相关字符串）。

TomEE官网对WebLogic特定配置项的修改提供了一些的示例，如确认有WebLogic特定配置项，可参看TomEE官网进行修改（http://tomee.apache.org/latest/examples/(http://tomee.apache.org/latest/examples/)）。

下面以创建对应数据库，指定正确的JDBC数据源，进行相关配置为例，展现修改私有配置项的过程。

1. 修改META-INF/persistence.xml。

  - 修改前：

```
<persistence-unit name="annotationServlet" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>examples.webapp.servlets.annotations.Visitor</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/examples;create=true"/>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.user" value="examples"/>
<property name="javax.persistence.jdbc.password" value="examples"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
```


  - 修改后：

```
<persistence-unit name="annotationServlet" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<non-jta-data-source>MySQL_Database</non-jta-data-source>
<class>examples.webapp.servlets.annotations.Visitor</class>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
</properties>
</persistence-unit>
```


2. 创建example数据库，将对应的MySQL连接驱动（例如：mysql-connector-java-8.0.19.jar）复制到TomEE的lib目录下。
3. 指定JDBC数据源：在conf目录下新增tomee.xml文件，内容如下。

```
<Resource id="MySQL_Database" type="DataSource">
JdbcDriver=com.mysql.jdbc.Driver
JdbcUrl=jdbc:mysql://localhost:3306/example
UserName=root
password=admin
JtaManaged=false
</Resource>
```
