部署动态Web项目,包括带有JNLP文件部署的JApplet的HTML页面

时间:2013-01-03 16:13:20

标签: java html5 tomcat7 jnlp japplet

我搜索谷歌和这方面并做了一些教程,我想这是(像往常一样)我的问题的一行解决方案是:

我有一个“index.html”页面,其中包含以下代码:

<script src="http://www.java.com/js/deployJava.js"></script>
<script> 
    var attributes = {code:'gui.Applet.class', archive:'ComTool.jar', width:1288, height:800} ; 
    var parameters = {jnlp_href: 'Deploy.jnlp', draggable: 'true'} ; 
    var version = '1.7' ;
    deployJava.runApplet(attributes, parameters, version); 
</script> 

和“Deploy.jnlp”文件看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="Deploy.jnlp">

<information>
    <title>Tool</title>
    <vendor>Andrea</vendor>
    <homepage href="index.html"/> 
    <description>Tool for representing relations between components and their versions.</description>
    <description kind="short">Allows to change relations between components and their versions.</description>
    <description kind="tooltip">The test tool.</description>
    <offline-allowed/> 
    <shortcut online="false">
        <desktop />
    </shortcut> 
</information>

<resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="WEB-INF/lib/ComTool.jar" main="true" download="lazy"/>
    <jar href="WEB-INF/lib/itextpdf-5.3.2.jar" download="lazy"/>
    <jar href="WEB-INF/lib/ojdbc6.jar" download="lazy"/>
</resources>

<applet-desc 
     name="Tool"
     main-class="gui.Applet"
     width="1288"
     height="800">
 </applet-desc>

 <update check="background"/>

 <security>
    <all-permissions/>
 </security>
</jnlp>

并且这两个文件都在我的动态Web项目的“WebContent”文件夹中 - 该文件夹的结构是:

WebContent/META-INF
WebContent/WEB-INF/lib/ComTool.jar
WebContent/WEB-INF/lib/itextpdf-5.3.2.jar
WebContent/WEB-INF/lib/ojdbc6.jar
WebContent/WEB-INF/web.xml
WebContent/Deploy.jnlp
WebContent/index.html

当右键单击项目并选择“运行方式/在服务器上运行”时,“index.html”页面已加载但没有小程序,字面上。这意味着没有错误,没有灰盒子没有像页面剂量找不到JNLP文件。 JAR都是签名的,当我双击资源管理器中的“index.html”文件时,一切都可以工作,但不能在Eclipse Juno管理的Tomcat 7.0服务器上运行。服务器运行,我认为这不是问题。哦,我差点忘了web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

<display-name>CompTool</display-name>

<distributable/>

<welcome-file-list>
     <welcome-file>index.html</welcome-file>
     <welcome-file>index.htm</welcome-file>
</welcome-file-list>

</web-app>

我想我必须在web.xml文件中添加一些东西?我经历了这个tag list,但我找不到对我有用的东西。我还必须说动态网络项目对我来说相当新鲜。我玩了一遍,发现如果我加上这个:

<error-page> 
    <location>/error.html</location> 
</error-page>

既不起作用,当然“error.html”就在这里:

WebContent/error.html

当这工作时我想生成这个动态Web项目的WAR文件并将其部署在另一台服务器上。我刚创建了一个动态Web项目并插入文件,更改并双重检查所有路径并删除了“web.xml”文件中不必要的条目,我只想最小化错误源,现在是我的问题我做错了什么?我需要帮助......

Best,Andrea

1 个答案:

答案 0 :(得分:0)

这是一个很难的,如果有人在某个时候遇到同样的问题,我的错误就在这里:

  1. 不要尝试通过eclipse中的“Run As”启动动态Web项目,将其作为WAR导出到... Apache-Tomcat-7.0.34 / webapps文件夹中,它会自动部署并运行!
  2. 做你的作业,我想我可以直接从服务器加载我的GUI图像,不,我不能。小程序总是在客户端上运行,因此使用URL和URI来加载图像(请在谷歌上获取更多信息)。
  3. 如果你想在服务器上保存或创建文件使用Servlets,我也得到了错误的图片......
  4. OJDBC6.jar签名(也由jarsigner -verify ojdbc6.jar验证)可能会导致重新加载HTML页面出现问题,解决此问题使用fatjar(google ...)并将所有JAR文件打包到一个文件中(如果你使用ojdbc6),然后签名。当我临时保存应用程序时,它在启动时也会出现类似“ojdbc6.jar中的未签名资源”错误。
  5. 使用jnlp中的“codebase”属性通过URL指向服务器上的applets位置。
  6. 我希望这会有所帮助。

    安德里亚有点沮丧:)