君子陌 2014-02-13 06:52 采纳率: 0%
浏览 2095

resin4报错:javax.naming.NameNotFoundException

系统所用框架为08年前的dinamica,之前是运行在resin2上的,现在想针对该系统做一些架构上的调整,需要修改java源代码,并希望让它支持更新的jdk和服务器版本。
本机环境:eclipse 4.3.0,resin-pro-4.0.38,将项目移植过来后运行:

控制台下提示: 下面这段标红
Resin Professional has not found any valid licenses.
Licenses belong in C:\resin-pro-4.0.38\licenses.
See http://www.caucho.com/resin/sales for licensing information.
...

页面报错:
    500 Servlet Exception
[show] javax.naming.NameNotFoundException: java:comp/env/jdbc/admin
javax.servlet.ServletException: javax.naming.NameNotFoundException: java:comp/env/jdbc/admin

在resin2上这个命名是可以的,但在resin4上出现这样的错误,请问这是什么原因?数据源什么的都有好好的配置,随时等候补充

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-01 18:29
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能由以下几个原因引起:

    1. 你的JNDI(Java Naming and Directory Interface)路径设置不正确。在resin4中,你需要使用java:comp/env作为JNDI路径来访问应用程序的数据源。

      <app-data>
        <jdbc-app>
          <dataSource id="myDataSource" jndi-name="java:comp/env/jdbc/myDatabase"/>
        </jdbc-app>
      </app-data>
      
    2. 你可能没有正确地设置了你的应用ID和数据库名称。在resin4中,你需要在<app-data>元素中明确指定这些信息。

    3. 你的数据源是否已经被其他应用引用了。如果被引用,那么它可能会导致资源冲突。

    4. 你的数据源是否已经关闭或者正在执行。在某些情况下,这可能导致JNDI找不到资源的问题。

    解决这些问题的方法可能是重新启动你的应用,或者尝试清除你的JNDI缓存。如果你有权限的话,你也可以尝试删除或重建你的数据源。

    注意:以上建议仅适用于resin4,因为resin2中的JNDI设置与resin4不同。

    评论

报告相同问题?