简单解决复杂的Oracle IAS问题

笔者做了一个小的系统辅助功能,可以周期性访问某个URL、执行某个SQL语句or 执行某个系统命令 。

执行SQL语句和系统命令比较简单,这里不再详述,主要说一下访问某个URL。

实际上JDK自身已有工具类用于创建HTTP请求,类名是:java.net.HttpURLConnection,但考虑到基础类通常比 较粗糙,很多情况要自己考虑和处理,就转头去Google了下,发现果然有开源的工具包可以使用,几个工具包中以HttpClient较为常用,而且是apache的东东,于是决定采用HttpClient。

从apache上 down了包commons-httpclient-3.1.jar和commons-codec-1.3.jar两个包,后者是HttpClient依赖的包。

帮助写的很好,即便是像我这样英文很烂,也能很快上手。

public boolean  visitURL(String url) {

// Commons HttpClient 3.1
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);

// Provide custom retry handler is necessary
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new  DefaultHttpMethodRetryHandler(3, false));

boolean rs = false;

try {

// Execute the method.
int statusCode = client.executeMethod(method);

if (statusCode != HttpStatus.SC_OK) {
logger.error("Method failed: " + method.getStatusLine());
}
else {
rs = true;
}

} catch (HttpException e) {
logger.error("Fatal protocol violation: " + e.getMessage());
} catch (IOException e) {
logger.error("Fatal transport error: " + e.getMessage());
} finally {
// Release the connection.
method.releaseConnection();
}

return rs;
}

本机Tomcat下run一下,工作正常,随即丢到服务器(Oracle IAS环境)上测试,程序 应该出乎意料的报了个错。

09/03/16 19:03:43 java.lang.NoClassDefFoundError
09/03/16 19:03:43 at org.apache.commons.httpclient.HttpMethodBase.writeRequestLine (HttpMethodBase.java:2015)
09/03/16 19:03:43 at org.apache.commons.httpclient.HttpMethodBase.writeRequest (HttpMethodBase.java:1864)
09/03/16 19:03:43 at org.apache.commons.httpclient.HttpMethodBase.execute (HttpMethodBase.java:975)
09/03/16 19:03:43 at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry (HttpMethodDirector.java:368)
09/03/16 19:03:43 at org.apache.commons.httpclient.HttpMethodDirector.executeMethod (HttpMethodDirector.java:164)
09/03/16 19:03:43 at org.apache.commons.httpclient.HttpClient.executeMethod (HttpClient.java:437)
09/03/16 19:03:43 at org.apache.commons.httpclient.HttpClient.executeMethod (HttpClient.java:324)
09/03/16 19:03:43 at com.zbht.util.TimerTaskManager.runURLTask (TimerTaskManager.java:237)
09/03/16 19:03:43 at _system._timer__task._test._jspService(_test.java:182)
09/03/16 19:03:43 at com.orionserver.http.OrionHttpJspPage.service (OrionHttpJspPage.java:59)
09/03/16 19:03:43 at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)
09/03/16 19:03:43 at oracle.jsp.runtimev2.JspServlet.internalService (JspServlet.java:594)
09/03/16 19:03:43 at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
09/03/16 19:03:43 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
09/03/16 19:03:43 at com.evermind.server.http.ServletRequestDispatcher.invoke (ServletRequestDispatcher.java:713)
09/03/16 19:03:43 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal (ServletRequestDispatcher.java:370)
09/03/16 19:03:43 at com.evermind.server.http.HttpRequestHandler.doProcessRequest (HttpRequestHandler.java:871)
09/03/16 19:03:43 at com.evermind.server.http.HttpRequestHandler.processRequest (HttpRequestHandler.java:453)
09/03/16 19:03:43 at com.evermind.server.http.AJPRequestHandler.run (AJPRequestHandler.java:302)
09/03/16 19:03:43 at com.evermind.server.http.AJPRequestHandler.run (AJPRequestHandler.java:190)
09/03/16 19:03:43 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run (ServerSocketReadHandler.java:260)
09/03/16 19:03:43 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run (ReleasableResourcePooledExecutor.java:303)
09/03/16 19:03:43 at java.lang.Thread.run(Thread.java:595)

时间: 2024-08-31 11:27:01

简单解决复杂的Oracle IAS问题的相关文章

Oracle iAS 10g Report Server Cluster 配置和测试

oracle|server Oracle iAS 10g Report Server Cluster 配置和测试

在Oracle iAS 10g中创建Report Server

oracle|server|创建 1. rwserver -install rep012. In "Service", start the rep01 server to create the conf file.3. Open <oracle_home>\reports\conf\rep01.conf4. Add path infomation , env infomation, such as : <?xml version = '1.0' encoding =

解决系统从Oracle到Sybase的迁移

目的:解决系统从Oracle到Sybase的迁移. 命令纵览: C:\Documents and Settings\newuesr>isql -help Syntax Error in '-help'. usage: isql [-b] [-e] [-F] [-p] [-n] [-v] [-X] [-Y] [-Q] [-a display_charset] [-A packet_size] [-c cmdend] [-D database] [-E editor [-h header [-H h

简单解决新浪SAE无法上传文件的问题

  这篇文章主要介绍了简单解决新浪SAE无法上传文件的问题,不知道到底是新浪的BUG还是我个人的问题,分享给大家吧. 今天给网站后台增加一个上传文件的功能,结果出现BUG,提示未选择上传文件. 以下是代码部分. ? 1 2 3 4 5 6 7 8 9 10 <form method="post" action="attached.php?action=upload_post" enctype="multipart/form-data">

python超简单解决约瑟夫环问题

  本文实例讲述了python超简单解决约瑟夫环问题的方法.分享给大家供大家参考.具体分析如下: 约瑟环问题大家都熟悉.题目是这样的.一共有三十个人,从1-30依次编号.每次隔9个人就踢出去一个人.求踢出的前十五个人的号码: 明显的约瑟夫环问题,python实现代码如下: ? 1 2 3 4 5 6 a = [ x for x in range(1,31) ] #生成编号 del_number = 8 #该删除的编号 for i in range(15): print a[del_number]

PHP中__autoload和Smarty冲突的简单解决方法_php实例

本文讲述了PHP中__autoload和Smarty冲突的简单解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近,在项目中发现,PHP 的 __autoload 方法失效了.调试了好久,百思不得其解,查了下资料才知道原来是 Smarty 的原因.新版的 Smarty 改变了autoload的方式. 二.解决方法: 在 Smarty 的包含类文件后加一段代码,spl_autoload_register("__autoload"); 如下: <?php define('RO

C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法_C#教程

本文实例讲述了C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法.分享给大家供大家参考,具体如下: 在Winform中如果将一个透明图片放在窗体上能正常显示透明,但是如果将该图片放在另一个控件上会导致不能显示透明效果. 解决这种情况,可以采取在控件上使用GDI+绘画出透明图片. 这里我们就以一个pictureBox2控件上面重叠一张png透明图片为例: 我们只需要给pictureBox2控件添加Paint事件,然后对png透明图片进行绘制即可,代码如下: private voi

【技术贴】所有好友的QQ空间都打不开进不去的超简单解决办法!

[技术贴]所有好友的QQ空间都打不开进不去的超简单解决办法!     1.打开360安全卫士,全面体检,修复系统并清理缓存和临时文件. 2.打开QQ,点空间. 3.ok  收贴.

JQuery 传送中文乱码问题的简单解决办法_jquery

一.客户端先进行编码,服务端再解码. 客户端发送数据: var names = encodeURIComponent("电费"); names = encodeURIComponent( names); $.post("test.do?names="+name,null, function(){}); 服务端解码: 获取names 参数值,然后解码. String name = URLDecoder.decode(names, "UTF-8");