加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

揉杂在一起的问题

发布时间:2020-12-12 15:38:05 所属栏目:MsSql教程 来源:网络整理
导读:近期遇到的问题。简要记之,谨作备忘。 关键词:Delphi7、Eclipse/MyEclipse、AXIS2、Web Service、ocx、XML、Base64、多页Tiff、ImageEn等 ? 一、Web服务器配置AXIS2服务 ??? 到 http://ws.apache.org/axis2/ 下载 axis2-1.4.1-war.zip。 ??? 或在 http://a


近期遇到的问题。简要记之,谨作备忘。


关键词:Delphi7、Eclipse/MyEclipse、AXIS2、Web Service、ocx、XML、Base64、多页Tiff、ImageEn等

?

一、Web服务器配置AXIS2服务

??? 到http://ws.apache.org/axis2/ 下载 axis2-1.4.1-war.zip。

??? 或在http://apache.justdn.org/ws/axis2/下载。

??? 解压后可以得到axis2.war。

??? 把axis2.war以Web应用方式部署到Web服务器,访问http://127.0.0.1:8888/axis2,如出现AXIS的欢迎页面,则说明配置成功。

??? 当然axis2.war可以重新命名为其他的xxxx.war。


二、AXIS2在Eclipse IDE中的配置

??? 需要下载Axis Eclipse plug-in,分别是AXIS2的代码生成工具和打包工具:

??? axis2-eclipse-codegen-wizard.zip

??? axis2-eclipse-service-archiver-wizard.zip


??? 下载地址:http://apache.justdn.org/ws/axis2/tools/1_4_1/

??? 把下载的AXIS2的两个plug-in解压缩后放到Eclipse安装目录下的plug-in子目录。


??? Eclipse启动后便可在“File->New->Other”中看到这些Wizards工具。


??? AXIS2在Eclipse中开发Web Service的过程如下:

??? 1. 新建Project

??? 2. 新建Web Service的WSDL文件。

??? 3. 使用Axis2 Code Generator向导,分两次从WSDL建立Web Service的Server端和Client端。

??? 4. 使用Axis2 Services Archive向导,把Web Service服务端打包成aar。

??? 5. 发布aar,把aar文件Copy到Axis2应用的/WEB-INF/services/目录下面。

?????? 访问对应的web应用可以得到该Web Service的WSDL文档。


三、AXIS2在MyEclipse6.5报错的问题
???
??? Axis2 Code Generator向导生成代码后,在Finish 时会产生Exception:

?An error ocurred while completing process
?-java.lang.reflect.InvocationTargetException

??? 问题在于 Code Generator plugin 内缺少了两个包:

???? backport-util-concurrent-3.1.jar 包
???? geronimo-stax-api_1.0_spec-1.0.1.jar 包

??? 解决方法:

??? 1. 关闭 Eclipse

??? 2. copy? %AXIS2_HOME%/lib/下的backport-util-concurrent-3.1.jar 和 backport-util-concurrent-3.1.jar

?????? 粘贴到 MyEclipse 6.5/eclipse/plugins/Axis2_Codegen_Wizard_1.3.0/lib 文件夹下。

??? 3. 注册此jar 包:

?????? 编辑MyEclipse 6.5/eclipse/plugins/Axis2_Codegen_Wizard_1.3.0/plugin.xml文件。

?在 <runtime>內加入如下内容:

?<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
????? <export name="*"/>
?</library>
?<library name="lib/backport-util-concurrent-3.1.jar">
????? <export name="*"/>
?</library>

??? 4. 保存plugin.xml文件,重新启动Eclipse即可。
????

四、Delphi7客户端调用AXIS2服务的问题

??? 因为Delphi7发布的时候,AXIS2还没有出生,Delphi7不兼容AXIS2的WSDL文档。

??? 在默认情况下,D7导入AXIS2的WSDL后,生成的pas文件中没有对应的Web Service接口方法。

??? 所以默认情况下无法使用D7编写的客户端调用AXIS2的Web Service服务。

??? 为此,花费不少时间研究,几经磨难才搞定。 ^_^


五、Delphi7+AXIS2 Web Service服务传送文件

??? 这个问题不大。主要还是BASE64的应用。其核心跟D7调用JBuilder9/10带的AXIS一样。

??? 只是多了request和response这样请求和返回的参数,更具BS程序特性。


六、多页tif文件的处理

??? 多页tif的拆分和合成,其处理速度是最头疼事情。

??? JAVA处理多页tif:JAI组件。可以把多页tif拆分成jpeg,然后再合并成多页tif,这样处理速度会稍好一些。

??? Delphi7处理多页tif:ImageEn控件,功能强大。


七、使用JDOM生成格式化XML文件

??? 用dom4j生成的XML文件不易做换行缩进等美化格式的操作。

??? 使用jdom可以轻松搞定一个换行缩进格式美化且易读且良构的XML文件。

??? 主要语句参考:

???? Element root = new Element("aRoot");
???? Document document = new Document(root);
???? ......
???? try{
???????? Format format = Format.getCompactFormat();
???????? format.setEncoding("UTF-8"); //设置文件编码格式UTF-8
???????? format.setIndent("??? ");?? //设置缩进
???????? XMLOutputter XMLOut = new XMLOutputter(format);
???????? XMLOut.output(document,new FileOutputStream(saveFilePath));
???? } catch (Exception e) {
???????? e.printStackTrace();
???? }


八、Delphi7生成发布ocx的问题

??? D7中新建Active Form,在Type Library中对接口新增一个Property属性,生成对应的set和get方法。

??? html页面嵌入ActiveX后可以向ocx传递参数。

??? 主要在ActiveForm的set方法中得到传入的参数。

??? ocx对象实例化时,其参数的执行顺序和建立顺序一致。使用前记得先注册ocx。

??? 另外,发布ocx时,Project--Web Deploy等按钮可能是灰色。可能D7是D版或Bug。

??? 针对这个问题,具体的做法是再New一个Active Form,然后关掉这个新的Active Form,这时候就可以使用Web Deploy了。


九、D7中ImageEn控件版本冲突问题

??? 如下4个bpl可能会与其他控件的bpl冲突:

??? PKIECtrl7.bpl、PKIEDB7.bpl、DPKIECTRL7.bpl、DPKIEDB7.bpl

??? 可把这些bpl放置到/WINDOWS/system32/目录下。

?

?

十、在IE7中刷新验证码图片

??? 点击验证码图片域时,把其中的验证码图片刷新一下。在IE6下没有问题。

??? 因图片指向引用地址未变,IE7浏览器未能自动刷新图片。

??? 如下,在地址中增加一个Math取得随机数的方法,即可解决IE7中刷新验证码图片的问题。
?
?? <script>
???? function reflush()
???? {
???????? document.getElementById('ValidateImg').src="/servlet/ValidateNum?"+Math.random();
???? }
??? </script>

?


十一、Ext.Panel.load()的回调callback()方法

aPanel.load({url: 'test.jsp',
?scripts: true,
?nocache: true,
?discardUrl: false,
?timeout: 600000,? //10min
?callback:function(el,success,response) {
??????? ??if (!success ) {
???????? ???var obj = Ext.util.JSON.decode(response.responseText);
??????? ???alert(obj.msg);
??????? ??}
??????? ?}
?});

当response返回FAILED时,回调触发执行:

response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);//设置失败


十二、动态设置Ext.form.TextField的emptyText属性

aField.setRawValue('请输入查询条件');
aField.emptyText = '请输入查询条件';
aField.applyEmptyText();

?

十三、mms协议的端口

使用Windows Media Service发布点播服务,对外映射外网IP时,需开放防火墙的554、1755端口和对应的路由器的映射端口。??


十四、Web应用绝对路径

//如果Web应用的绝对路径中包含中文或空格,则需要处理一下
String realPath = (Thread.currentThread().getContextClassLoader().getResource("")).getPath();
try {
?realPath = URLDecoder.decode(realPath,"UTF-8");
} catch (UnsupportedEncodingException e) {
?System.out.println(this.getClass().getName()+" throw Exception: "+e.toString());
}
realPath = realPath.substring(1,realPath.length());


十五、连接SQLServer2005的问题

一直用的SQLServer2000,更换到SQLServer2005时,后台报错:

------------

[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。

------------

上网搜到原因,连接SQLServer2005需替换微软新的数据库驱动程序。

于是下载了sqljdbc.jar。一试果然好使,同时也支持SQLServer2000。

以后可以不用那3个jar驱动了。


数据库驱动名称和数据库链接写法举例:
?
SQLServer 2000数据库驱动的写法:

?? driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
?? url="jdbc:microsoft:sqlserver://192.168.100.100:1433;dataBaseName=testdb"

?
SQLServer 2005数据库驱动的写法:

?? driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
?? url="jdbc:sqlserver://192.168.100.100:1433;DatabaseName=testdb"

注意两者的差异。

?

?

??????????????????????????????????????????????????????????????????? ??By JRQ????????????????????????????????????????????????????????????? ?2009/06/12 于南昌

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读