<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.io.IOException"%>
<%@ page import="org.apache.commons.httpclient.HttpClient"%>
<%@ page import="org.apache.commons.httpclient.HttpStatus"%>
<%@ page import="org.apache.commons.httpclient.methods.PostMethod"%>
<%@ page import="org.apache.commons.httpclient.methods.GetMethod"%>
<%@ page import="org.apache.commons.httpclient.methods.RequestEntity"%>
<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams"%><%@ page
import="org.apache.commons.httpclient.methods.StringRequestEntity"%>
<%@ page
import="org.apache.commons.httpclient.DefaultHttpMethodRetryHandler"%>
<%@ page import="java.io.DataOutputStream"%>
<%@ page import="org.apache.commons.httpclient.Header"%><%@ page import="java.util.Enumeration"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//10.243.167.74:8082
url="http://172.16.90.163:8080/ssoclientapp/loginInforeSys?toModel=INTERFACE&usercode=sa&Params=showContent%3DOPTPATHFIND";
StringBuffer sb=new StringBuffer();
HttpClient httpClient = new HttpClient();
// Create a method instance.
PostMethod postMethod = new PostMethod(sb.toString());
String key = null;
Enumeration parameterNames = request.getParameterNames();
while(parameterNames.hasMoreElements()){
key = (String) parameterNames.nextElement();
postMethod.addParameter(key, request.getParameter(key));
}try{
// Execute the method.
int statusCode = httpClient.executeMethod(postMethod);
if (statusCode != HttpStatus.SC_OK)
{
out.print("连接管线系统出错 " + postMethod.getStatusLine());
}
// Read the response body.
byte[] responseBody = postMethod.getResponseBody();
//设置返回类型
Header header = postMethod.getResponseHeader("Content-Type");
String contentType = header.getValue();
response.setContentType(contentType);
//判断是否是图片
if(contentType.indexOf("image") != -1){
//如果是图片则以字节流的形式返回
DataOutputStream dos = new DataOutputStream (response.getOutputStream());
dos.write(responseBody, 0, responseBody.length);
dos.flush();
dos.close();
out.clear();
out=pageContext.pushBody();
}else{
//如果是图片以外的格式则以字符串的形式返回
response.getWriter().write(new String(responseBody,"utf-8"));
out.clear();
out=pageContext.pushBody();
}
// out.print(new String(res));
}
catch (Exception e)
{
out.println("Fatal transport error: " + e.getMessage());
e.printStackTrace(response.getWriter());
}
finally
{
// Release the connection.
postMethod.releaseConnection();
}
%>这是一个页面中的代码,每运行到url=""这一行就会报错,但是把url直接在IE上运行是OK的
哪位大侠做过类似的东东。 求解答 下面是一些错误信息2011-11-2 17:34:46 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 26 in the jsp file: /test/pageRedirect.jsp
url cannot be resolved
23: request.setCharacterEncoding("utf-8");
24: response.setContentType("text/html;charset=utf-8");
25: //10.243.167.74:8082
26: url="http://172.16.90.163:8080/ssoclientapp/loginInforeSys?toModel=INTERFACE&usercode=sa&Params=showContent%3DOPTPATHFIND";
27: StringBuffer sb=new StringBuffer();
28: HttpClient httpClient = new HttpClient();
29: // Create a method instance.
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.gpdi.infores.web.app.filter.PrepareRequestDataFilter.doFilter(PrepareRequestDataFilter.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)
pageEncoding="utf-8"%>
<%@ page import="java.io.IOException"%>
<%@ page import="org.apache.commons.httpclient.HttpClient"%>
<%@ page import="org.apache.commons.httpclient.HttpStatus"%>
<%@ page import="org.apache.commons.httpclient.methods.PostMethod"%>
<%@ page import="org.apache.commons.httpclient.methods.GetMethod"%>
<%@ page import="org.apache.commons.httpclient.methods.RequestEntity"%>
<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams"%><%@ page
import="org.apache.commons.httpclient.methods.StringRequestEntity"%>
<%@ page
import="org.apache.commons.httpclient.DefaultHttpMethodRetryHandler"%>
<%@ page import="java.io.DataOutputStream"%>
<%@ page import="org.apache.commons.httpclient.Header"%><%@ page import="java.util.Enumeration"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//10.243.167.74:8082
url="http://172.16.90.163:8080/ssoclientapp/loginInforeSys?toModel=INTERFACE&usercode=sa&Params=showContent%3DOPTPATHFIND";
StringBuffer sb=new StringBuffer();
HttpClient httpClient = new HttpClient();
// Create a method instance.
PostMethod postMethod = new PostMethod(sb.toString());
String key = null;
Enumeration parameterNames = request.getParameterNames();
while(parameterNames.hasMoreElements()){
key = (String) parameterNames.nextElement();
postMethod.addParameter(key, request.getParameter(key));
}try{
// Execute the method.
int statusCode = httpClient.executeMethod(postMethod);
if (statusCode != HttpStatus.SC_OK)
{
out.print("连接管线系统出错 " + postMethod.getStatusLine());
}
// Read the response body.
byte[] responseBody = postMethod.getResponseBody();
//设置返回类型
Header header = postMethod.getResponseHeader("Content-Type");
String contentType = header.getValue();
response.setContentType(contentType);
//判断是否是图片
if(contentType.indexOf("image") != -1){
//如果是图片则以字节流的形式返回
DataOutputStream dos = new DataOutputStream (response.getOutputStream());
dos.write(responseBody, 0, responseBody.length);
dos.flush();
dos.close();
out.clear();
out=pageContext.pushBody();
}else{
//如果是图片以外的格式则以字符串的形式返回
response.getWriter().write(new String(responseBody,"utf-8"));
out.clear();
out=pageContext.pushBody();
}
// out.print(new String(res));
}
catch (Exception e)
{
out.println("Fatal transport error: " + e.getMessage());
e.printStackTrace(response.getWriter());
}
finally
{
// Release the connection.
postMethod.releaseConnection();
}
%>这是一个页面中的代码,每运行到url=""这一行就会报错,但是把url直接在IE上运行是OK的
哪位大侠做过类似的东东。 求解答 下面是一些错误信息2011-11-2 17:34:46 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 26 in the jsp file: /test/pageRedirect.jsp
url cannot be resolved
23: request.setCharacterEncoding("utf-8");
24: response.setContentType("text/html;charset=utf-8");
25: //10.243.167.74:8082
26: url="http://172.16.90.163:8080/ssoclientapp/loginInforeSys?toModel=INTERFACE&usercode=sa&Params=showContent%3DOPTPATHFIND";
27: StringBuffer sb=new StringBuffer();
28: HttpClient httpClient = new HttpClient();
29: // Create a method instance.
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.gpdi.infores.web.app.filter.PrepareRequestDataFilter.doFilter(PrepareRequestDataFilter.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)
这个url的变量是在哪里定义的? 如:String url = "...";
各位。 这是小弟的错误.... 代码贴错了 其实整个是这样的
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//10.243.167.74:8082
String url="http://172.16.90.163:8080/ssoclientapp/loginInforeSys?toModel=INTERFACE&usercode=sa&Params=showContent%3DOPTPATHFIND";
StringBuffer sb=new StringBuffer();
HttpClient httpClient = new HttpClient();
// Create a method instance.
PostMethod postMethod = new PostMethod(url);
.....................
.....................
运行到这一行 PostMethod postMethod = new PostMethod(url);
ClassNotFoundException......这类错误
构造方法能这么写?
能看看你的构造方法具体咋写的不
大概是这个样子的. 不过我这用的是
org.apache.commons.httpclient.methods.PostMethod
别人也是用的这种方式去访问,只是不是同一系统. 我想他们应该是运行OK的.
我主要的做的就是父窗体拿到子窗体中的返回值,但存在一个跨域的问题.这个页面主要是作为一个中转的
后台处理也是相当于代理的
PostMethod的父类中用到了另一个jar包里的类,又看不到源代码。 失误啊失误