小编Rae*_*ald的帖子

log4j没有打印异常的stacktrace

我正在使用log4j和tomcat.当我在JSP中记录异常时,servlet:

private Logger _log = Logger.getLogger(this.getClass());
...
try{...} catch (Exception e) {
    _log.error("Error refreshing all prices", e);
}
Run Code Online (Sandbox Code Playgroud)

我只得到异常的第一行,没有堆栈跟踪.

17-Feb 17:37:45 ERROR AutoContrib:175 - 发布csv文件时出现异常:java.lang.ArrayIndexOutOfBoundsException

根本没有帮助!

我的log4j.properties文件(/tomcat/common/classes/log4j.properties)如下所示:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd-MMM HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.stdout.threshold=info

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=5000KB
log4j.appender.file.maxBackupIndex=10
log4j.appender.file.File=${catalina.home}/logs/web.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MMM HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.file.threshold=info

log4j.rootLogger=debug, stdout, file
Run Code Online (Sandbox Code Playgroud)

java logging tomcat log4j

67
推荐指数
4
解决办法
6万
查看次数

如何在gdb中禁用新的线程/线程退出消息?

我正在调试一个应用程序,我得到了很多这样的消息:

[New Thread 0x7fffde152700 (LWP 11142)]
[Thread 0x7fffde152700 (LWP 11142) exited]
[New Thread 0x7fff967fa700 (LWP 11143)]
[Thread 0x7fff967fa700 (LWP 11143) exited]
[New Thread 0x7fff967fa700 (LWP 11144)]
[Thread 0x7fff967fa700 (LWP 11144) exited]
[New Thread 0x7fff967fa700 (LWP 11145)]
[Thread 0x7fff967fa700 (LWP 11145) exited]
[New Thread 0x7fffde152700 (LWP 11146)]
[Thread 0x7fffde152700 (LWP 11146) exited]
[New Thread 0x7fffde152700 (LWP 11147)]
[Thread 0x7fffde152700 (LWP 11147) exited]
[New Thread 0x7fffde152700 (LWP 11148)]
[Thread 0x7fffde152700 (LWP 11148) exited]
[New Thread 0x7fffde152700 (LWP 11149)]
[Thread 0x7fffde152700 (LWP 11149) …
Run Code Online (Sandbox Code Playgroud)

linux logging multithreading gdb

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

强制多个线程在可用时使用多个CPU

我正在编写一个使用大量CPU的Java程序,因为它的功能本质.但是,很多都可以并行运行,而且我的程序是多线程的.当我运行它时,它似乎只使用一个CPU,直到它需要更多然后它使用另一个CPU - 我有什么可以用Java来强制不同的线程在不同的核心/ CPU上运行吗?

java concurrency multithreading multicore

66
推荐指数
4
解决办法
8万
查看次数

什么是被抑制的异常?

注释(用户SOC上的)回答关于尾调用优化的问题提到了Java 7中有一个称呼,是因为"加ARM的"的"抑制异常",新的功能(适用于ARM CPU的支持?).

在这种情况下,什么是"抑制异常"?在其他情况下,"被抑制的异常"将是一个被捕获然后被忽略的异常(很少是一个好主意); 这显然是不同的.

java exception-handling exception try-with-resources

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

在Eclipse中创建一个Maven项目抱怨"无法解析原型"

我完全是Maven的新手.我想用Eclipse Juno EE和原型"webapp"创建一个Maven项目.我安装了"Maven Integration for Eclipse WTP(孵化)",我还安装了"Maven Integration for Eclipse"(在Eclipse Marketplace的Installed选项卡上找到它).当我尝试从File-> New_> Maven Project创建新项目时,我得到错误:

Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:RELEASE from any of the configured repositories.
Could not resolve artifact org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE
Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (C:\Documents and Settings\PEP35KD\.m2\repository)
Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (C:\Documents and Settings\PEP35KD\.m2\repository)

它适用于各种原型.我正在使用代理,我使用以下内容在C:\ Documents and Settings\PEP35KD.m2 \下创建文件settings.xml:

<proxies>
    <proxy>
        <id>myId</id>
        <active>true</active>
        <protocol>http</protocol>
        <username>rete\pep35kd</username>
        <password>XXXX</password>
        <host>XXXX</host>
        <port>8080</port> …
Run Code Online (Sandbox Code Playgroud)

java eclipse maven

63
推荐指数
5
解决办法
34万
查看次数

一个简单程序的类加载流程

我刚刚开始学习Java的内部架构.我已经粗略地理解了类加载的概念,它在jvm运行时加载所需的类,ClassNotFoundException在没有找到类时抛出,特定的类加载器加载类引用的类.

有人可以清楚地解释类加载的流程,即下面的示例Java代码中的引导类加载和用户定义的类加载的顺序.

import java.io.File;
public class Sample
{
    public static void main(String[] args)
    {
        String fileName = "sample";
        File file = new File(fileName);
        file.isFile();
    }
} 
Run Code Online (Sandbox Code Playgroud)

我还从一个参考资料中学到了" classloader维护它加载的类的名称空间".通过名称空间,这是否意味着类的文字名称?也有人可以解释一下这个含义/优点吗?

java classloader

63
推荐指数
4
解决办法
4万
查看次数

如果增加一个等于STL容器的结束迭代器的迭代器,会发生什么

如果我将迭代器指向向量的最后一个元素时,它会增加2怎么办?在这个询问如何通过2个元素调整到STL容器的迭代器的问题中,提供了两种不同的方法:

  • 使用算术运算符的形式 - + = 2或++两次
  • 或者使用std :: advance()

当迭代器指向STL容器的最后一个元素或更远时,我用VC++ 7测试了它们的边缘情况:

vector<int> vec;
vec.push_back( 1 );
vec.push_back( 2 );

vector<int>::iterator it = vec.begin();
advance( it, 2 );
bool isAtEnd = it == vec.end(); // true
it++; // or advance( it, 1 ); - doesn't matter
isAtEnd = it == vec.end(); //false
it = vec.begin();
advance( it, 3 );
isAtEnd = it == vec.end(); // false
Run Code Online (Sandbox Code Playgroud)

我已经看过有时可以建议在遍历vector和其他容器时与vector :: end()进行比较:

for( vector<int>::iterator it = vec.begin(); it != vec.end(); …
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl vector

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

如何显示结构体在GDB中的哪些字段?

我遇到了一个ngx_http_variable_value_t在我的GDB会话中调用的结构,我想打印它在控制台中的字段.

那可能吗?

c gdb

62
推荐指数
5
解决办法
7万
查看次数

为什么HTTP标头名称中禁止使用下划线

几个月前,我遇到了一个名为"SESSION_ID"的自定义HTTP标头的问题,但是没有被nginx代理转移.

我被告知根据HTTP协议的RFC禁止使用下划线.

谷歌搜索,我发现像apachenginx这样的大多数服务器都将它们定义为非法.

RFC2616第4.2节说

遵循与RFC 822 [3.1]第3.1节中给出的相同的通用格式

RFC822

字段名必须由可打印的ASCII字符组成(即,值介于33.和126之间的字符,十进制,冒号除外)

下划线是ASCII表中的95个十进制字符(属于33-126范围).我错过了什么?

apache http nginx rfc

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

RestTemplate线程安全吗?

Spring是否是RestTemplate线程安全的?那是

  • RestTemplate多个连接可以安全共享的策略对象.要么
  • 是一个RestTemplate连接对象(如数据库连接),在使用时无法共享,并且需要为每个连接重新创建或池化.

java rest spring thread-safety

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