标签: weblogic12c

Weblogic 12C - 有没有办法从控制台编辑部署计划的变量?

我们是 Weblogic (12c) 的新手。我们尝试根据应用程序运行的环境(dev / staging /prod)选择如何将一些配置传递给应用程序。

我目前正在尝试使用部署计划。在WEB-INF/web.xml,我有:

<context-param>
    <param-name>test</param-name>
    <param-value>11111</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

plan.xml我在 Weblogic 中为我的应用程序使用了 a 。一些部分 :

<variable-definition>
    <variable>
        <name>test</name>
        <value xsi:nil="false">22222</value>
        <description>some description</description>
    </variable>
</variable-definition>
Run Code Online (Sandbox Code Playgroud)

<module-descriptor external="false">
    <root-element>web-app</root-element>
    <uri>WEB-INF/web.xml</uri>
    <variable-assignment>
        <name>test</name>
        <xpath>/web-app/context-param/[param-name="test"]/param-value</xpath>
        <origin>planbased</origin>
        <operation>replace</operation>
    </variable-assignment>
</module-descriptor>
Run Code Online (Sandbox Code Playgroud)

这有效!

但我听说可以从管理控制台更改变量的值,是真的吗?

当我在控制台中(在Deployment Plan选项卡中或在Configuration选项卡中)浏览我的应用程序时,我没有看到任何可以用来更改test变量的字段......我是否遗漏了什么或必须在plan.xml文件本身?

java weblogic weblogic12c jakarta-ee

5
推荐指数
1
解决办法
1920
查看次数

将 T4CConnection 转换为 OracleConnection 时出错

Spring 应用程序使用 JNDI 查找来获取数据源,如下所示:

   @Bean(name = "dataSource1", destroyMethod = StringUtils.EMPTY)
    public DataSource dataSource() {
        final JndiDataSourceLookup lookup = new JndiDataSourceLookup();
        lookup.setResourceRef(true);

        return lookup.getDataSource(this.environment.getProperty(Constants.DB_JNDI_NAME_ES));
    }
Run Code Online (Sandbox Code Playgroud)

并从数据源获取连接如下:

@Autowired
@Qualifier("dataSource1")
private DataSource ds;



 Connection conn = null;
 conn = this.ds.getConnection();
Run Code Online (Sandbox Code Playgroud)

但是当我将该连接传递给 StructDescriptor 时,它会抛出 classCastException 如下:

StructDescriptor desc1 = StructDescriptor.createDescriptor("MSAF_DBA.AMOUNT_DUE_OBJ",conn);

java.lang.ClassCastException: weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection cannot be cast to oracle.jdbc.OracleConnection
    at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:101)
    at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:72)
    at com.ceiwc.es.policyholder.dao.PolicyHolderDaoImpl.getAmountDue(PolicyHolderDaoImpl.java:290)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
Run Code Online (Sandbox Code Playgroud)

我的理解是getConnection()回报T4CConnection,其中的OracleConnection是必需的。尝试了几种方法来获得oracleConnection但似乎无法获得它。任何帮助,将不胜感激。

java oracle11g weblogic12c

5
推荐指数
1
解决办法
1万
查看次数

如何防止 Weblogic 使用 ExpressionInterceptor?

我正在将网站从运行 Weblogic 11g (10.3.5) 的 Java 6 迁移到运行 Weblogic 12c (12.1.3) 的 Java 8。我发现了几个问题(这有助于我团队中的其他人之前尝试过,但没有取得足够的成功),但一个似乎无法克服,我无法找到任何相关信息。

我们的一个 JSP 无法在浏览器中加载 ,并weblogic.servlet.jsp.CompilationException抱怨“方法 _jspService(HttpServletRequest, HttpServletResponse) 的代码超出 65535 字节限制”。检查.java在两个版本的 Weblogic 中为 JSP生成的文件之间的差异,我看到每个 JSP 表达式都包装在一个 ExpressionInterceptor 中。

例如,在运行 Java 6 的 WebLogic 10 中,<%=user.getLanguage()%>变为out.print(user.getLanguage());. 在运行 Java 8 的 WebLogic 12 中,它变为:

out.print(_jsp_expressionInterceptor.intercept(
    String.valueOf(user.getLanguage()), pageContext,
    weblogic.servlet.jsp.ExpressionInterceptor.Type.Scripting));
Run Code Online (Sandbox Code Playgroud)

在我看来,额外的几个方法调用 - 2 个方法调用,在文件中大约 250 次 - 足以使该_jspService方法超过 64K 限制。(Java 6 中的方法大小,基于来自 的输出javap,是 62912 字节,所以这是有道理的。)

我的问题是:有什么办法可以阻止 Weblogic 生成对ExpressionInterceptor? …

java jsp weblogic java-8 weblogic12c

5
推荐指数
1
解决办法
770
查看次数

在带有 Hibernate 5 的 Weblogic12 上使用 JPA2.1:java.lang.NoClassDefFoundError:无法初始化类 org.hibernate.jpa.HibernatePersistenceProvider

我对尝试将 JPA 2.1 PersistenceManager 与 Hibernate 5 一起使用的简单任务感到非常沮丧。

我打包了一个使用 weblogic ant 任务 jwsc (weblogic.wsee.tools.anttasks.JwscTask) 构建的简单 Web 服务,但是在部署时我得到了这个NoClassDefFoundError

[wldeploy] [BasicOperation.execute():472] : Initiating deploy operation for app, import2, on targets:
 [wldeploy] [BasicOperation.execute():474] :    myserver
 [wldeploy] Task 0 initiated: [Deployer:149026]deploy application import2 on myserver.
 [wldeploy] dumping Exception stack
 [wldeploy] Task 0 failed: [Deployer:149026]deploy application import2 on myserver.
 [wldeploy] Target state: deploy failed on Server myserver
 [wldeploy] java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.jpa.HibernatePersistenceProvider
 [wldeploy]     at java.lang.Class.forName0(Native Method)
 [wldeploy]     at java.lang.Class.forName(Class.java:348)
 [wldeploy]     at …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa weblogic12c

5
推荐指数
1
解决办法
1083
查看次数

java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前操作

我将两个数据文件一个接一个地上传到一个表中,在这样做的过程中,我不断收到如下错误。是的,我不会在中间取消任何过程。

PS:我使用 JDeveloper 12c 和内部 12c Weblogic 服务器来部署我的应用程序。

Exception ::com.ofss.pm.upload.common.exception.UploadException: UploadException in parsePopulateBrnBnkUpld :com.ofss.pm.upload.common.exception.UploadException: SQLException : 
java.sql.SQLTimeoutException: ORA-01013: user requested cancel of current operation
ORA-06512: at "SYS.UTL_FILE", line 148
ORA-06512: at "SYS.UTL_FILE", line 889
ORA-06512: at line 1

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:466)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:407)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1113)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:546)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:603)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:228)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:49)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1000)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1316)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:5010)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:5136)
at oracle.jdbc.driver.OracleCallableStatement.executeUpdate(OracleCallableStatement.java:10886)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1519)
at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:170)
at com.ofss.pm.upload.dao.BranchBankDao.callProcUpldBranchBank(BranchBankDao.java:614)
at com.ofss.pm.upload.handler.BranchBankHandler.parsePopulateBrnBnkUpld(BranchBankHandler.java:113)
at com.ofss.pm.scheduler.jobs.BranchBankUpldJob.execute(BranchBankUpldJob.java:78)
at com.ofss.pm.scheduler.JobExecutorBean.onMessage(JobExecutorBean.java:264)
at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:438)
at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:361) …
Run Code Online (Sandbox Code Playgroud)

java oracle jdeveloper weblogic12c oracle12c

5
推荐指数
0
解决办法
1万
查看次数

更新到 Weblogic 12.2.1.2.0 后 @Singleton 的 @Startup 提交期间超时

我们已经将我们的环境升级为WLS12.2.1.2.0来自WLS12.1.1.0并遇到@Startup@Singletonbean方法中的事务问题。

所述 bean 部署在 EAR 内,该 EAR 将消息发布到事务下的 JMS 队列。这在目标服务器运行时有效,但在容器启动期间失败:

Timeout during commit processing
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:281)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:301)
at weblogic.transaction.internal.CoordinatorImpl_12212_WLStub.commit(Unknown Source)
at weblogic.transaction.internal.TransactionImpl$1.run(TransactionImpl.java:378)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.transaction.internal.SecureAction.runAction(SecureAction.java:71)
at weblogic.transaction.internal.PlatformHelperImpl.runAction(PlatformHelperImpl.java:1493)
at weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:375)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:270)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.ejb.container.manager.BaseEJBManager.handleLifecycleCallbackTx(BaseEJBManager.java:412)
at weblogic.ejb.container.manager.SingletonSessionManager.constructAndInitBean(SingletonSessionManager.java:301)
...
Caused by: javax.transaction.SystemException: Timeout during commit processing
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:340)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:99)
at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:645)
at weblogic.rmi.internal.BasicServerRef$2.run(BasicServerRef.java:534)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:531)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:138)
... 7 …
Run Code Online (Sandbox Code Playgroud)

singleton startup weblogic12c jakarta-ee

5
推荐指数
0
解决办法
563
查看次数

将 Spring Boot 部署到 weblogic 12

我已经使用 start.spring.io 创建了一个应用程序(spring boot 1.5.6)并尝试将其部署到 Weblogic 12.1.3.0.0。
管理控制台中的消息:

错误 无法访问选定的应用程序。
错误 java.io.IOException
错误 weblogic.utils.compiler.ToolFailureException

日志中的消息:
<23.08.2017 13:40:26 GMT+03:00> <Error> <J2EE> <BEA-160228> <AppMerge failed to merge your application. If you are running AppMerge on the command-line, merge again with the -verbose option for more details. See the error message(s) below.>

这些链接没有帮助:
https:
//docs.spring.io/spring-boot/docs/1.5.x/reference/html/howto-traditional-deployment.html 在 Weblogic 中部署 Spring Boot 应用程序

更新:
问题是依赖 JAX-RS。没有它应用程序部署成功。不确定如何使用此依赖项
更新 x2:
删除 Jax-rs,现在:
java.lang.NoSuchMethodError:org.springframework.core.annotation.AnnotationAwareOrderComparator.sort(Ljava/util/List;)V
已解决

java weblogic12c spring-boot

5
推荐指数
1
解决办法
6836
查看次数

使用 ARRAY 输入参数执行 Oracle 存储过程

由于oracle.sql.ArrayDescriptor,oracle.sql.STRUCToracle.sql.StructDescriptor已弃用,我正在使用java.sql.Array和从 Java 调用 Oracle 存储过程java.sql.Struct

我用这个问题作为参考

这是我的代码。

import java.sql.Array;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Struct;
import java.util.Map;

import javax.naming.InitialContext;
import javax.sql.DataSource;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.stereotype.Repository;

import oracle.jdbc.OracleTypes;
import oracle.jdbc.OracleConnection;

public CrearRelacionArbolResponseBean crearRelacionArbol(String mensajeTransaccion,
            CrearRelacionArbolRequestBean request) throws DBException {
        DataSource sgaDS;
        CrearRelacionArbolResponseBean objResponse = new CrearRelacionArbolResponseBean();

        Connection conn = null;

        try {
            InitialContext ctx = new InitialContext(); …
Run Code Online (Sandbox Code Playgroud)

arrays java-8 weblogic12c oracle12c spring-boot

5
推荐指数
1
解决办法
627
查看次数

无法通过 Dockerized WebLogic 将 Debug 设置为适用于 Java,不能使用 IntelliJ 或 Studio Code

我想将调试器附加到我在 dockerized WebLogic 12c 中部署的 WAR。我使用 WebLogic 的官方镜像(这是一个 Linux 容器) https://hub.docker.com/_/oracle-weblogic-server-12c 并使用 docker 命令启动容器:

docker run -d -p 4002:4002 -p 9002:9002 
-v c:/my-path-to-shared-volume:/u01/oracle/properties 
-e ADMINISTRATION_PORT_ENABLED=true -e DOMAIN_NAME=docker_domain 
-e JAVA_TOOL_OPTIONS=\"-agentlib:jdwp=transport=dt_socket,address=4002,server=y,suspend=n\" 
--name weblogic store/oracle/weblogic:12.2.1.3-dev-200109
Run Code Online (Sandbox Code Playgroud)

weblogic 控制台在https://localhost:9002/console/ 上活跃起来,但是在尝试运行调试器时,我的 IDE 说:

无法打开调试器端口(本地主机:4002):java.io.IOException“握手失败 - 连接过早关闭”

我的操作系统是Windows10。我尝试了Visual Studio Code IntelliJ,并得到了相同的输出。WAR 运行得很好,当我使用 portman 命中某些服务端点时,它们会做出响应。

似乎发生的是容器内的 weblogic 启动脚本尝试两次应用 Java 选项参数!请参阅下面的容器输出的相关部分:

域主页是:/u01/oracle/user_projects/domains/docker_domain 拿起 JAVA_TOOL_OPTIONS:“-agentlib:jdwp=transport=dt_socket,address=localhost:4002,server=y,suspend=n” 在地址侦听传输 dt_socket:4002 正在初始化 WebLogic 脚本工具 (WLST) ... 欢迎使用 WebLogic Server 管理脚本外壳

[...] (在我得到的日志中进一步向下:)

使用以下行启动 WLS:/usr/java/jdk-8/bin/java -server -Djava.security.egd=file:/dev/./urandom -cp /u01/oracle/wlserver/server/lib/weblogic-launcher …

java debugging yaml weblogic12c docker

5
推荐指数
1
解决办法
1150
查看次数

无法调用注释处理器 - 在 Weblogic 12.2.1.2.0 中部署时

我正在将一个 java 项目从 weblogic 8.1 迁移到 weblogic 12c。

根据oracle文档,我已经转换了以下内容。

 1. Servicegen converted to jwsc task
 2. deployment descriptor has been modified
 3. Below annotations added in service implementation file

  @WebService
  @SoapBinding
  @SoapMessageHandler
Run Code Online (Sandbox Code Playgroud)

在所有上述更改确实生成了war文件并部署在weblogic 12c服务器中之后,它会抛出如下错误

Unable to invoke annotation processor

<BEA-160228> App merge failed your application
weblogic.utils.compiler.ToolFailureException: unable to invoke annotation processor
Run Code Online (Sandbox Code Playgroud)

代码 :

package com.tutorialspoint.stateless;

import com.tutorialspoint.entity.Book;
import java.util.List;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
@WebService(serviceName="LibraryService")
public class LibraryPersistentBean implements LibraryPersistentBeanRemote {
    
   public LibraryPersistentBean() { …
Run Code Online (Sandbox Code Playgroud)

java ejb weblogic weblogic8.x weblogic12c

5
推荐指数
1
解决办法
672
查看次数