You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Orbeon 2017.2 CE与Glassfish部署:Builder/Runner报"Error performing search"错误

解决GlassFish 5部署Orbeon 2017.2 CE的数据库通信错误问题

我之前在GlassFish上部署Orbeon时也踩过类似的坑,结合你描述的情况(Tomcat正常、GlassFish首页能打开但表单操作报错),咱们从几个核心方向排查解决:

1. 核对Orbeon数据库配置与GlassFish数据源的匹配度

Orbeon的数据库连接配置在WEB-INF/resources/config/properties/orbeon.properties里,重点检查这几个参数:

  • oxf.persistence.db.datasource:这个值要和你在GlassFish里配置的数据源JNDI名称完全一致,比如如果GlassFish里建的数据源叫jdbc/orbeon,这里就要设成jdbc/orbeon
  • oxf.fr.persistence.provider.*.*.*:确保这个参数指向db(默认就是,但如果之前改了要改回来),表示用数据库存储表单数据

2. 确保GlassFish正确加载数据库驱动并配置数据源

GlassFish对JDBC驱动的加载逻辑和Tomcat不一样,别只把驱动jar包塞到Orbeon的war里:

  • 把对应数据库的驱动jar(比如MySQL的mysql-connector-java-*.jar、PostgreSQL的postgresql-*.jar)放到GlassFish的domains/domain1/lib目录下,然后重启GlassFish
  • 登录GlassFish管理控制台(默认http://localhost:4848),走以下步骤配置:
    • 进入Resources > JDBC > JDBC Connection Pools,新建连接池,选择对应的数据库类型,填写URL、用户名、密码后点击"Ping"测试连接,确保能成功连通数据库
    • 进入Resources > JDBC > JDBC Resources,新建资源,JNDI名称填和Orbeon配置里一致的名字,关联刚才创建的连接池

3. 给Orbeon应用添加数据源访问权限

GlassFish默认会限制应用对全局资源的访问,需要在Orbeon的WEB-INF目录下新建或修改glassfish-web.xml,添加资源引用:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
    <resource-ref>
        <description>Orbeon Database Connection</description>
        <res-ref-name>jdbc/orbeon</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</glassfish-web-app>

这里的res-ref-name要和你配置的JNDI名称完全一致。

4. 手动初始化Orbeon数据库表(可选但稳妥)

虽然Orbeon CE默认会自动初始化数据库表,但如果GlassFish的数据源配置有问题,可能导致自动初始化失败。你可以手动执行Orbeon自带的SQL脚本:

  • 找到Orbeon war包解压后WEB-INF/resources/config/database目录下对应数据库的脚本(比如mysql-2017.2.sql)
  • 在你的数据库里执行这个脚本,确保所有需要的表都创建完成

5. 查看GlassFish日志定位具体错误

如果以上步骤做完还是报错,一定要看GlassFish的服务器日志(domains/domain1/logs/server.log),日志里会有详细的异常栈信息,比如:

  • 找不到驱动类:说明驱动jar没放对位置
  • 数据源找不到:说明JNDI名称配置不匹配
  • 权限不足:说明资源引用没配置好

根据日志里的具体提示再针对性调整,基本就能解决问题了。

内容的提问来源于stack exchange,提问作者langholloman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:31:42