【问题标题】:JNLP application cant find Mysql database driverJNLP 应用程序找不到 Mysql 数据库驱动程序
【发布时间】:2012-04-03 09:01:48
【问题描述】:

tomcat\webapps\swingapp\simple.jnlp 中我的应用程序的 JNLP 文件

<?xml version="1.0" encoding="utf-8"?> 
<jnlp 
  spec="1.0+" 
  codebase="http://localhost:8080/swingapp/" 
  href="simple.jnlp"> 
  <information> 
    <title>Simple Swing application</title> 
    <vendor>Me</vendor> 
    <description>Simple Swing Demo Application</description> 
    <description kind="short">Simple Swing Demo Application.</description> 
    <offline-allowed/> 
  </information> 
  <resources> 
    <j2se version="1.7.0+"/> 
    <jar href="simple.jar"/> 
  </resources> 
  <application-desc/> 
</jnlp>

simple.jar 中的我的 MANIFEST.MF 文件包含以下条目:

Manifest-Version: 1.0
Class-path: mysql-connector-java-5.1.18-bin.jar
Sealed: true
Created-By: 1.7.0_01 (Oracle Corporation)
Main-Class: com.ui.LoginForm

simple.jar - 我有一个简单的 swing 登录窗口,我可以在其中对照 mysql 表检查用户名/密码。

当我从命令执行 jar 时,它工作正常。它连接到 mysql 数据库并检查用户名/密码。

但是当我使用 url "http://localhost:8080/swingapp/simple.jnlp" 启动应用程序时,它找不到 mysql 驱动程序。虽然当我使用 'jar xf' 解压时我可以在 jar 中看到它。来自“C:\Documents and Settings\user\Application Data\Sun\Java\Deployment\log”的日志文件

<record>
  <date>2012-03-18T23:15:39</date>
  <millis>1332092739265</millis>
  <sequence>0</sequence>
  <logger>com.sun.deploy</logger>
  <level>FINE</level>
  <class>com.sun.deploy.trace.LoggerTraceListener</class>
  <method>print</method>
  <thread>8</thread>
  <message>user name : admin
</message>
</record>
<record>
  <date>2012-03-18T23:15:39</date>
  <millis>1332092739265</millis>
  <sequence>1</sequence>
  <logger>com.sun.deploy</logger>
  <level>FINE</level>
  <class>com.sun.deploy.trace.LoggerTraceListener</class>
  <method>print</method>
  <thread>8</thread>
  <message>password  : swingAdmin
</message>
</record>
<record>
  <date>2012-03-18T23:15:39</date>
  <millis>1332092739281</millis>
  <sequence>2</sequence>
  <logger>com.sun.deploy</logger>
  <level>FINE</level>
  <class>com.sun.deploy.trace.LoggerTraceListener</class>
  <method>print</method>
  <thread>8</thread>
  <message>java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
</message>
</record>
<record>

这可能是什么原因?

【问题讨论】:

  • 使用 JaNeLA 检查 JNLP。 localhost:8080/swingapp/mysql-connector-java-5.1.18-bin.jar URL 在浏览器中是否有效(例如,您可以将其复制/粘贴到地址栏,按 Enter 并获取 Jar)?您之前是否还有其他关于服务器 MySQL 的问题?
  • @AndrewThompson localhost:8080/swingapp/mysql-connector-java-5.1.18-bin.jar 这显然会抛出 404,因为 jar 在 jar 'simple.jar' 里面 这是我的第一个关于Mysql的问题
  • "jar 在 jar 'simple.jar' 中" 使用标准类加载器将无法正常工作。把它放在我在链接中显示的 URL 上(所以它不是 404)。另外,请将我在this comment 上提出的问题回答给完全不同的人(在非常相似的情况下)。
  • &lt;j2se version="1.7.0+"/&gt; J2SE 7 版本已经推向公众了吗?这里我还在运行 1.6.0_29。
  • @AndrewThompson 好的,我将 mysql 驱动程序提取到 URL 的位置,当我在浏览器中键入 URL 'localhost:8080/swingapp/mysql-connector- 时,mozilla 要求下载 jar 文件java-5.1.18-bin.jar'...但令人惊讶的是我仍然得到'java.lang.ClassNotFoundException:com.mysql.jdbc.Driver'。我相信 Java 1.7 已经在 Oracle 网站上发布了。

标签: java jnlp


【解决方案1】:

解压mysqlconnect.jar。 复制包的父文件夹中的 com,META-INF,org 文件夹。 创建jar文件。 创建密钥库 将密钥库绑定到 jar 创建jnlp文件 跑步! 注意:mysql 驱动程序允许使用“localhost”,因此应用程序只能在同一计算机域上运行。 对于密钥库,绑定概念检查:http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2013-01-08
    • 2018-10-26
    • 2019-07-25
    • 2021-02-23
    • 1970-01-01
    • 2016-04-02
    相关资源
    最近更新 更多