小编Jos*_*seK的帖子

问题在servlet中读取请求体

我正在编写一个HTTP代理,它是测试/验证系统的一部分.代理过滤来自客户端设备的所有请求,并将它们引导到各种受测试的系统.

代理实现为servlet,每个请求都转发到目标系统,它处理GET和POST.有时,目标系统的响应会被改变以适应各种测试条件,但这不是问题的一部分.

转发请求时,将复制所有标头,但实际HTTP传输的标头除外,例如Content-Length和Connection标头.

如果请求是HTTP POST,那么请求的实体主体也会被转发,这里有时它不起作用.

从servlet请求中读取实体主体的代码如下:

URL url = new URL(targetURL);
HttpURLConnection conn  = (HttpURLConnection)url.openConnection();
String method = request.getMethod();

java.util.Enumeration headers = request.getHeaderNames();
while(headers.hasMoreElements()) {

    String headerName = (String)headers.nextElement();
    String headerValue = request.getHeader(headerName);

    if (...) { // do various adaptive stuff based on header 

    }

    conn.setRequestProperty(headerName, headerValue);
}
Run Code Online (Sandbox Code Playgroud)

//这里是失败的部分

char postBody[] = new char[1024];
int len;

if(method.equals("POST")) {
    logger.debug("guiProxy, handle post, read request body");
    conn.setDoOutput(true);

    BufferedReader br = request.getReader();
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));

    do {
        logger.debug("Read request into …
Run Code Online (Sandbox Code Playgroud)

java post servlets http tomcat6

2
推荐指数
1
解决办法
9062
查看次数

Weblogic 10.3 - Servlet因异常而失败

我正在尝试将我的应用程序从Weblogic 8.1 SP 6升级到Weblogic 10.3.为此,我安装了Weblogic 10.3并创建了一个域.WLS 10.3从我的域名成功启动.我重新编译了Java 1.6中的代码,并成功部署了所有代码更改.

我已部署应用程序并尝试启动应用程序欢迎(登录)页面.

然后我看到以下错误:

Predefined Constants Object: com.abc.xyz272.businessclasses.PredefinedConstants@3d80183
DataSourceName='null'
sessionTimeOutLimit='36000'
00:39:31==>Servlet:  getRemoteUser=null
00:39:31==>Servlet:  getHeader=null
00:39:31==>count=0
<Oct 29, 2010 12:39:31 AM MDT> <Error> <HTTP> <BEA-101020> <[weblogic.servlet.internal.WebAppServletContext@2e28f75 - appName: 'mbqccrpt', name: 'xyzControllerServlet', context-path: '/xyzControllerServlet', spec-version: 'null'] Servlet failed with Exception
java.lang.NullPointerException
        at com.abc.xyz272.servlets.xyzControllerServlet.processRequest(Unknown Source)
        at com.abc.xyz272.servlets.xyzControllerServlet.doPost(Unknown Source)
        at com.abc.xyz272.servlets.xyzControllerServlet.doGet(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        Truncated. see log file for complete stacktrace
Run Code Online (Sandbox Code Playgroud)

我还有一个问题.在Weblogic 8.1上运行的应用程序也使用apache服务器来启动静态页面.要在weblogic 10.3中升级应用程序,我们是否需要apache服务器?

servlets weblogic weblogic-10.x

2
推荐指数
1
解决办法
3万
查看次数

Python属性和继承

说我有以下代码:

class Class1(object):

    def __init__(self):
        self.my_attr = 1
        self.my_other_attr = 2

class Class2(Class1):

    def __init__(self):
        super(Class1,self).__init__()
Run Code Online (Sandbox Code Playgroud)

为什么Class2不继承Class1的属性?

python inheritance attributes

1
推荐指数
1
解决办法
362
查看次数

1
推荐指数
2
解决办法
1132
查看次数

这两个代码片段中哪个更好

//first
if(num % 2 == 0 ) {
  isEven = true;
}


//second
isEven = (num %2 == 0);
Run Code Online (Sandbox Code Playgroud)

什么是最好的事情,首先是一个代码味道的情况?

java

1
推荐指数
1
解决办法
94
查看次数

Weblogic Apache插件和会话粘性

如果在负载均衡器和weblogic集群之间配置了两个Web服务器,那么两个Apache服务器是否会保持会话粘性?

例如,负载均衡器将第一个请求转发给第一个apache,然后将第一个apache转发给第一个WL托管实例.即使来自同一用户的第二个req由负载均衡器转发到第二个apache,第二个apache也能够将它转发到服务第一个请求的第一个WLManaged实例,而不是第二个不了解的第二个WLManaged实例.会话信息.

理想情况下,weblogic apache插件的行为应该是什么?问题是我不想在wl服务器集群上启用会话复制.

apache session weblogic

0
推荐指数
1
解决办法
2万
查看次数

Servlet jsp的Servlet.service()抛出了异常java.lang.NullPointerException

我得到以下异常和tomcat挂起,我的服务已关闭.

SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
    at org.apache.jsp.search_005fresult_jsp._jspService(search_005fresult_jsp.java:86)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
    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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    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.valves.RequestFilterValve.process(RequestFilterValve.java:276)
    at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:81)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:517)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Thread.java:619)
Sep 29, 2010 2:57:17 PM org.apache.catalina.core.ApplicationC
Run Code Online (Sandbox Code Playgroud)

jsp tomcat

0
推荐指数
1
解决办法
5万
查看次数

与mysql的java连接问题

我想将我的java Web应用程序与mysql数据库连接,但每当我运行该程序时,它都会抛出以下错误

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:959)
        at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1430)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at ConnectionManager.getConnection(ConnectionManager.java:21)
        at UserDAO.login(UserDAO.java:29)
        at LoginServlet.doGet(LoginServlet.java:27)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)
Run Code Online (Sandbox Code Playgroud)

java servlets

0
推荐指数
1
解决办法
305
查看次数

什么是以微秒为单位测量Java时间的最有效,"便宜"和准确的方法?

我正在使用ASM java字节码检测,我的目标是测量每次访问变量的时间.

**测量时间和记录**

**可变访问**

我正在寻找微秒的分辨率.它应该是准确的,因此足够"便宜"(意味着我不需要一个函数或一个需要10毫秒来获取时间的库).

我试过System.NanoTime()(太多,太昂贵)和Calendar(太松散),但我正在寻找一个更好的选择.

java time-measurement

0
推荐指数
1
解决办法
530
查看次数

使用Java测试网页

我正在寻找可以在本地托管的网页的自动化测试中使用的java测试.

这些是用于RESTful Web服务.

情况是我们在本地托管了一些网页或Web服务,我需要对此进行多次测试.

java rest automated-tests

0
推荐指数
1
解决办法
231
查看次数