下午调Applet和Web Service程序,竟然遇到了一堆问题。问题本不可怕,对于我这个Applet新手和Web Service新手来说,出一两个问题那简直就是一定的。所幸,一个一个解决调了。
1. Applet数字签名
Applet要访问客户端本地资源的话,客户端必须接受Applet的数字签名。要不然,Applet是不能对客户端的本地资源进行访问的。google这个问题的时候,2002年之前的文章都需要做policy文件,并且还需要更改客户端的JRE设置。这显然是不符合道理的。到2005年之后的文章一般就说:直接把JAR包打成数字签名的就好了。
如果需要用到的JAR包中的Class需要访问本地资源,而该JAR没有通过数字签名的话,还是会出现Access Denied错误。这个需要注意,所以,一般会把Applet需要用到的JAR都打在一起。我打了多个JAR。
2. WEB SERVICE
使用的开源工具KSOAP1.1之前的版本,AXIS2之前的版本。(历史原因了)
几个非常讨厌的问题:
2.1 参数类型的问题
居然Integer类型,Integer[]这样的类型不能序列化,String,int,byte[]这样简单类型可以初始化。并且byte[]这样的类型,还要使用
(new MarshalBase64()).register(classMap);
来注册一下,真是难于使用。有时候开源软件越多,虽然可以给我们提供很多选择,但是,每一个选择都有一定的学习成本。真是,还不如.NET,做出一个良好的实现,就用那个就好。昨天师弟和我说,在.NET中实现树形节点比在JAVA中实现快10倍。可见在快速开发方面,.NET的工具支持还是相当不错的。
要对参数类型序列化,要对返回类型序列化。才行。
2.2 取JAR中的File的问题
在本地取的时候,直接
String fileStr = Thread.currentThread().getContextLoader().getResource(fileName).getFile();
File file = new File(fileStr);
就可以了。
但是在Applet中取JAR中的文件的时候,就不能这么取了。
因为加载Applet的类加载器是网络类加载器,将fileStr打出来是
http://***.jar!cn/ac/******/example.sql
那通过new File的方式肯定是没法构建这个文件的。
改变通过取得资源的URL, 然后url.openStream()取得流,然后通过读取流中的信息来得到资源的内容,这个问题困惑了很久,终于搞定了。不管是在本地,还是在客户端都可以执行,没有问题。以后用File的时候得三思。另外,File对象序列化,文件的内容并不会序列化。如果是在本地的话,File对象序列化后再反序列化还是能够得到File所对应的文件内容。但是,如果不是在本地,可就完全不一样了。
分享到:
相关推荐
然而,需要注意的是,由于Java Applet的安全性和浏览器兼容性问题,现代Web开发中已经较少使用Applet,更多地转向了JavaScript、Web插件或其他技术来实现类似功能。 总的来说,"jasperreport+applet客户端打印demo...
3. Applet容器:虽然不常用,但Applet容器可以运行在客户端浏览器中,提供轻量级的客户端功能,不过现代应用更倾向于使用JavaScript和Web应用框架来替代。 此外,J2EE还支持XML技术,用于数据交换和配置,以及JDBC ...
它包含了各种组件和服务,如JSP、Servlet、JMS(Java Message Service)、JTA(Java Transaction API)等,提供了一个统一的框架来构建分布式、多层的应用系统。 2. **JSP(JavaServer Pages)**:JSP是JavaEE的一...
Java Applet是一种小型的Java程序,可以直接嵌入到Web页面中,实现动态交互功能: 1. **编译**:服务器端使用Java编译器将Java源代码编译成字节码(.class)文件。 2. **传输**:通过HTTP协议将字节码文件传输至...
服务器端编程是课程的重点之一,涵盖了CGI、SSI、JSP、Web Service、.NET技术等,尤其是ASP和ASP.NET的Web编程知识,使学生能够创建动态交互的Web应用程序。同时,日志文件分析、搜索引擎优化、Web安全和网络安全也...
了解CGI、SSI、JSP、Web Service、.net技术 ,掌握 ASP 及ASP.NET Web编程的基本知识。 (六)日志文件:1学时 掌握Web服务器日志文件分析的基本方法。 (七)搜索引擎:1学时 了解建立搜索引擎、提高站点访问率的...
XHTML(可扩展超文本标记语言)结合了HTML和XML的优点,WML(无线标记语言)用于移动设备,Web服务(Web Service)、SOAP(简单对象访问协议)、WSDL(Web服务描述语言)和UDDI(统一描述、发现和集成)则推动了跨...
- Matlab WebServer Service功能:提供网络仿真实验,但交互性和真实感不强,模型和算法设计难度大。 5. Java Applet技术的优点:Java Applet能够容易地侦听鼠标事件,并添加相应的事件处理代码,增强交互性,如...
预约小程序源码java eID 小程序项目的自述文件 一、简介 该项目包含 eID Applet 的源代码树。 源代码托管在: https://github.com/e-Contract/eid-applet ...eid-applet-test/eid-applet-test-deploy mvn jbo
J2EE的核心理念是组件化开发,它包含了一系列的API和服务,如Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JTA(Java Transaction API)等。 **J2EE组件** 1. **Servlet**: Servlet...
本文介绍了基于Web的JGraphx自动绘制拓扑图的设计和实现,包括JGraphx的功能和特性、Applet技术的应用、WebService的使用等,通过这些技术的结合,实现了企业信息系统对网络拓扑图的绘制、告警、监控需求。...
网络编程涵盖了Applet、Socket/TCP/UDP、NIO、RMI和CORBA,这些技术用于网络通信和分布式应用。 JavaEE初级软件工程师阶段,主要学习JSF(JavaServer Faces)框架,包括配置文件、组件库、核心库以及与HTML、CSS、...
然而,随着Web技术的发展,Applet逐渐被JavaScript和Ajax等技术取代,因为它们不需要额外的插件支持,并且在现代浏览器中的兼容性更好。 - Servlet技术:Servlets是Java EE(企业版)的核心组成部分,它们运行在...
一、Servlet—server applet Servlet 是 Java Web 开发中的核心组件之一,它是一个由 Java 编写的服务器端小程序,负责处理来自客户端...理解并掌握这些概念和技术,将有助于你深入学习和开发更复杂的Web应用程序。
GeoServer是一款基于Java的开源GIS服务器,它实现了OGC(Open Geospatial Consortium)标准,如WMS(Web Map Service)、WFS(Web Feature Service)等,可以方便地发布和管理地理空间数据。GeoServer支持多种数据...
- **Applet容器**:管理Applet组件,适用于客户端应用。 - **功能**:容器负责管理组件的生命周期、事务控制、安全认证等功能,简化了开发人员的工作负担。 #### 三、打包J2EE组件 - **WAR文件**:Web应用程序被...
3. **编写`service()`方法**:此方法是处理客户端请求的核心部分,接受`HttpServletRequest`和`HttpServletResponse`作为参数,分别代表客户端的请求和服务器的响应。 4. **编译Servlet程序**:编译后的`.class`...
在描述中提到,此项目并不依赖于Internet Explorer(IE)的打印功能,这意味着它可能使用了Java Applet或者Java Web Start技术,这些技术可以让Java代码在用户的浏览器中运行,从而直接控制本地打印机。 接着,我们...
3. **跨平台兼容性**: Java Print Service API的设计目标就是跨平台,但不同操作系统可能支持的PrintService和属性有所不同。因此,在编写代码时要考虑这些差异,确保在多种环境下都能正常工作。 4. **错误处理和...