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

无法在Websphere上使用PostgreSQL配置EJB计时器

阳航
2023-03-14

我有一个部署在WebSphere容器上的应用程序,并通过容器配置了EJB定时器调度程序。

我有一个oracle DB配置和所有工作顺利。

现在我试图改变数据库从Oracle到postgresSQL并做了所有需要的工作,包括创建新的数据源,驱动程序等。WebSphere确实设法通过数据源连接到DB。我使用的Jndi和我的oracle数据库一样,所以代码中不需要额外的工作。

当我试图启动应用程序并安装新的EAR文件时,我遇到以下异常:

[10/3/17 16:19:42:601 IDT]00000067 ServletWrappe

我认为在去掉IBM调度器并移动EJB标准计时器后,我不会出现这种异常

知道我怎么才能克服这个吗?

共有1个答案

纪辰沛
2023-03-14

EJB持久性定时器的实现仍然由数据库支持,因此该功能受到应用程序服务器与哪些数据库供应商具有内置互操作性的限制(SQL不同数据库供应商的命令差异很大)。WebSphereApplication Server传统的EJB持久性计时器(或其调度器)没有内置与PostgreSQL的互操作性,这就是为什么您会看到错误:

UnknownDatabaseException: Could not detect database vendor. Vendor string was PostgreSQL

也就是说,您可能能够让PostgreSQL在WebSphereApplicationServerLiberty上为EJB持久计时器工作(与传统的相反),因为Liberty实现是基于JPA而不是SQL构建的。

 类似资料:
  • 问题内容: 当Websphere调用@Startup EJB时,应在哪里设置用户上下文? 我有一个带有启动EJB的Java EE应用程序,并且我知道它在调用EJB时​​设置了一个用户,因为调用由于缺少角色而失败。但是,我找不到在哪里设置用户。 问题答案: EJB规范指出,会话Bean@PostConstruct方法是在未指定的安全上下文中调用的,而WebSphere并未记录特定的安全上下文或对其进

  • 导入java.rmi.RemoteException;导入java.util.properties;导入javax.ejb.createException;导入javax.naming.context;导入javax.naming.InitialContext;导入javax.naming.namingException;导入com.brainysoftware.ejb.adder;导入com.b

  • > WLP jpa级别:JPA-2.0 Spring版本:3.1.4.发行版 EntityManagerFactory bean:class=“org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean”

  • 我在liberty中部署了多个WebApp,它们都有自己的log4j配置文件,每个WAR中的log4j配置文件位于WAR的WEB-INF/classes文件夹中。添加log4j配置的web.xml代码片段如下: 这似乎适用于所有其他Tomcat和Jboss应用服务器,但不适用于WebSphere Liberty Profile。即使在WebSphere Basic profile中,似乎也是如此。

  • 当我试图在“Kerberos身份验证机制页面”上设置krb5.conf和keytab文件时,我们得到了这个错误。 当我按照您的输入运行命令klist时,我得到了如下的输出 “密钥表:/etc/krb5/pocsso.keytab 门票缓存:文件:/tmp/krb5cc_38698默认主体:pocsso1@poc.mail.com有效开始过期服务主体01/09/2014 16:15 02/09/20

  • 我们尝试使用EJB3.1计时器组件。 我们的需求很简单。每分钟在java类中调用一个方法。要使此组件工作: 问题: EJB无法查找EJBTIMER表空间。我们可以在application.py或IBM WebConsole中进行设置。