`
zhaoshijie
  • 浏览: 2262021 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

webservie 客户端读取服务器端日志例子(以网页展现)

阅读更多
package bpmlog;

import java.io.BufferedInputStream;
下面是一个完整的 servlet,直接复制它既可以使用,只需要修改红色部分路径即可,

本例使用方法:在浏览器直接键入URL:即可展现日志,如下:http://localhost:8888/BPMDemo/BPMClientLogService?point=p1


代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BPMClientLogService extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 1L;

/**
* Constructor of the object.
*/
public BPMClientLogService() {
super();
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String point = request.getParameter("point");
String fileName = "\\bpm.log";
String filePath = "C:\\BPM_Logs\\"+point+fileName;
if(point.equals("")){
errorHttpContent(response);
}else{
showLogContent(response,filePath);
}
}



private void errorHttpContent(HttpServletResponse response) throws IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>BPMClientLogService</TITLE></HEAD>");
out.println("  <BODY>");
out.println(createTitle());
out.println(createBar());
out.println("Reason: did not find the relevant connection point!!!");
out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}




private void showLogContent(HttpServletResponse response,String filePath) throws IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>BPMClientLogService</TITLE></HEAD>");
out.println("  <BODY>");
//----------------------------------------------------------------------------------

out.println(createTitle());
out.println(createBar());
String httpContent = createHttpContent(filePath);
if(!httpContent.equals("")){
out.println(createHttpContent(filePath));
}else{
out.println("Reason: did not find the relevant connection point!!!");
}


//----------------------------------------------------------------------------------
out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}



private String createHttpContent(String filePathAndName) {
String httpContent = "";
InputStreamReader inr = null;
BufferedReader reader = null;
try {
File f = new File(filePathAndName);
if (f.isFile() && f.exists()) {
inr = new InputStreamReader(new FileInputStream(f), get_charset(f));
reader = new BufferedReader(inr);
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("20")) {
httpContent += createLine();
httpContent += createLine(line);
} else {
httpContent += createLine(line);
}
}
}
} catch (Exception e) {
System.out.println("读取文件内容操作出错");
e.printStackTrace();
} finally {
close(reader, inr);
}
return httpContent;
}



private void close(BufferedReader reader, InputStreamReader inr) {
try {
if (reader != null)
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (inr != null)
inr.close();
} catch (IOException e) {
e.printStackTrace();
}

}



private String createLine(String content){
System.out.println("<h4>"+content+"</h4>");
return "<h4>"+content+"</h4>";
}



private String createLine(){
return "<br/><br/>";
}



private String createBar(){
return "<hr width='60%' size='10' align='center' color='#9900ff'/>";
}


private String createTitle() {
         return "<h2  style='color: #9900ff;font-weight: 400;' align='center'>BPMPlatform  client-side  logging service ! ! !</h2>";
}


private String get_charset(File file) {
String charset = "GBK";
byte[] first3Bytes = new byte[3];
try {
boolean checked = false;
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(file));
bis.mark(0);
int read = bis.read(first3Bytes, 0, 3);
if (read == -1)
return charset;
if (first3Bytes[0] == (byte) 0xFF && first3Bytes[1] == (byte) 0xFE) {
charset = "UTF-16LE";
checked = true;
} else if (first3Bytes[0] == (byte) 0xFE
&& first3Bytes[1] == (byte) 0xFF) {
charset = "UTF-16BE";
checked = true;
} else if (first3Bytes[0] == (byte) 0xEF
&& first3Bytes[1] == (byte) 0xBB
&& first3Bytes[2] == (byte) 0xBF) {
charset = "UTF-8";
checked = true;
}
bis.reset();
if (!checked) {
int len = 0;
int loc = 0;

while ((read = bis.read()) != -1) {
loc++;
if (read >= 0xF0)
break;
if (0x80 <= read && read <= 0xBF) // 单独出现BF以下的,也算是GBK
break;
if (0xC0 <= read && read <= 0xDF) {
read = bis.read();
if (0x80 <= read && read <= 0xBF)// 双字节 (0xC0 - 0xDF)
// (0x80 -
// 0xBF),也可能在GB编码内
continue;
else
break;
} else if (0xE0 <= read && read <= 0xEF) {// 也有可能出错,但是几率较小
read = bis.read();
if (0x80 <= read && read <= 0xBF) {
read = bis.read();
if (0x80 <= read && read <= 0xBF) {
charset = "UTF-8";
break;
} else
break;
} else
break;
}
}
System.out.println(loc + " " + Integer.toHexString(read));
}

bis.close();
} catch (Exception e) {
e.printStackTrace();
}

return charset;
}


/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

}




}
分享到:
评论

相关推荐

    WebService客户端调用WebService服务示例代码——java

    WebService客户端调用WebService服务示例代码,java代码,纯手工,包括直接httpClient直接发送Saop报文调用和利用wsimport -keep 生成客户端代码后调用两种方式的示例。因涉及商务账户密码隐私,因此代码中的有些账号...

    WebServie 加减乘除

    本教程将详细讲解如何构建一个简单的WebServie,包括加减乘除的基础运算,以及服务端、客户端的部署。 1. **WebServie概念与架构** - WebServie是一种服务导向架构,提供了一种标准化的方式,使得不同的系统能够...

    测试调用webservice接口客户端所开发的接口示例

    服务器端实现处理来自客户端的请求,而客户端代理类则负责调用远程服务。 4. 开发Web服务客户端: - 创建服务代理:首先,我们需要获取服务的WSDL(Web Service Description Language)文件,该文件描述了服务的...

    Eclipese中一个简单的WebService(有客户端)

    在这个例子中,文件`Eclipese中手动建立WebServie客户端.txt`可能包含了这些步骤的详细说明。 2. **导入生成的客户端类**:将生成的客户端代码添加到项目中,通常包括一个服务接口和一个实现类。 3. **调用Web服务**...

    JAVA WebServie Client.docx

    2. **创建WebServiceClient实例**:在Java项目中,可以通过创建`WebServiceClient`对象来实现与WebService服务器之间的通信。 - 示例代码: ```java WebServiceClient client = new WebServiceClient(); ``` 3....

    WebServie创建部署调用

    2. **生成客户端代理**:大多数开发环境提供了工具自动生成客户端代理类,这些类封装了与服务交互的所有细节。例如,Java的wsimport命令,C#的Add Service Reference功能。 3. **编写调用代码**:通过客户端代理类...

    webservie开发技术

    2. 工作流程通常为:客户端发送一个SOAP请求到WebService服务器,服务器解析请求,执行相应的业务逻辑,然后返回一个SOAP响应给客户端。 二、主要技术组件 1. SOAP:作为数据交换的协议,SOAP定义了消息结构,使得...

    axis1.4 部署解析webservie

    增加下列类路径(以“;”间隔符)。 D:\axis\WEB-INF\lib\activation.jar; D:\axis\WEB-INF\lib\axis.jar; D:\axis\WEB-INF\lib\axis-ant.jar; D:\axis\WEB-INF\lib\axis-schema.jar; D:\axis\WEB-INF\lib\commons...

    webservice入门学习代码笔记

    - 使用SOAP消息:客户端根据WSDL生成SOAP请求,发送给服务端,服务端解析请求,执行相应操作,然后返回SOAP响应。 - 使用RESTful风格:虽然不是传统的Web服务模型,但REST(Representational State Transfer)风格...

    MyEclipse开发WebService教程

    完成这些设置后,部署项目到Tomcat服务器,启动服务器,Web Service就会准备就绪。 接下来,我们要创建Web Service的客户端。这通常是一个独立的Java项目,可以是一个普通的Java应用程序。在客户端项目中,我们需要...

    webServiceDemo.zip

    工作中应用的webservice服务,一直以来做webservie的客户端比较多,这次领导让做webservice的服务端,网上找了很多的方案,如axis,jws和cxf,比较了一下,觉得cxf的webservice的服务是最好的,所以搞了个demo,以供...

    webservice实例 CXF的JAXWS和JAXRS实现 及JAXB标准接口实现带jar包

    CXF支持JAX-RS,并提供了丰富的功能,如拦截器、提供者、客户端API等,使RESTful服务开发更加灵活和高效。 然后,**JAXB** 是一个核心的Java技术,用于将XML文档和Java对象之间的映射自动化。它允许我们通过注解...

    WebService 最简单搭建 Demo

    4. **部署服务**:将服务部署到应用服务器,如Tomcat或Jetty,使其可以接收和响应来自客户端的请求。 5. **客户端调用**:客户端通过解析WSDL文件获取服务接口和调用方法,然后使用SOAP请求与服务端通信。 在提供...

    webservice的完整示例demo

    SpringBoot内置了Tomcat服务器,并自动配置了许多Spring组件,减少了大量配置工作。 CXF是Apache项目中的一个开源服务框架,它支持多种Web服务标准,包括SOAP和RESTful API。CXF使得在SpringBoot应用中实现和调用...

    maximo6-JAVA调用WEBSERVICE

    在IT行业中,集成不同的系统和服务是一项常见的任务,而MAXIMO6作为一款资产管理和工作流程的软件,有时需要与...在实际开发中,还需注意错误处理、安全性以及性能优化等方面的问题,以确保服务调用的稳定性和高效性。

    这是链接SOAP的所需要的jar包

    使用webservie所用到的jar包,方便使用webservice类

    jaxws ri 2.2.7包webservice所需要全部包

    webservie发布所需要的包 @WebService public class JwsServiceHello { public String greeting(String name){ return "Welcome " + name; }

    WebServices基础培训视频与源码

    资源名称:WebServices基础培训视频与源码资源目录:【】1....使用xfire开发webServie操作不同的数据类型【】13.使用xfire与Spring整合开发webServie.part 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    动态调用webservice

    winfrom 程序调用 webServie 中方法,有两种方法 WebServCaller.cs /* *调用示例: * Hashtable ht = new Hashtable(); * ht.Add("str", "test"); * ht.Add("b", "true"); * XmlDocument xx = WebSvcCaller....

Global site tag (gtag.js) - Google Analytics