我正在使用 rsyslog 将我的 var/log/message 提供给工具。但是,正如您所看到的,异常出现在多行(每行的时间戳不同)中,而不是记录为单行。我希望它看起来像 catalina.out 消息。有什么办法可以做到这一点。任何帮助将不胜感激。
catalina.out 看起来像这样:
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
Run Code Online (Sandbox Code Playgroud)
var/log/message 看起来像这样
2014-02-20T06:21:32.006782+00:00 something148-084-115 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
2014-02-20T06:21:32.006782+00:00 something148-084-115 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
2014-02-20T06:21:32.006784+00:00 something148-084-115 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
2014-02-20T06:21:32.006784+00:00 something148-084-115 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
2014-02-20T06:21:32.006786+00:00 something148-084-115 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
Run Code Online (Sandbox Code Playgroud)
log4j.xml -
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} abc: [component="XYZ" priority="%p" thread="%t"] %c.%M:%L - %m%n" /> …Run Code Online (Sandbox Code Playgroud) 我的枚举类
@XmlType
@XmlEnum(Integer.class)
public enum Error {
@XmlEnumValue("1")
ENUM_VALUE_1(1, "some string 1", "some string 1"),
@XmlEnumValue("2")
ENUM_VALUE_2(2, "some string 2", "some string 2");
private Error(int errorCode, String msgKey, String message) {
this.errorCode = errorCode;
this.msgKey = msgKey;
this.message = message;
}
}
Run Code Online (Sandbox Code Playgroud)
生成的 xsd
<xs:simpleType name="error">
<xs:restriction base="xs:int">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)
我正在使用的绑定
<jaxb:bindings schemaLocation="schema.xsd">
<jaxb:bindings node="//xs:simpleType[@name='error']">
<jaxb:typesafeEnumClass ref="packageName.Error" />
</jaxb:bindings>
</jaxb:bindings>
Run Code Online (Sandbox Code Playgroud)
问题是没有生成枚举文件。我正在使用“maven-jaxb2-plugin”进行代码生成。
我的域名模型是这样的:
CollectedData {
String name;
String description;
int count;
int xAxis,
int yAxis
}
Run Code Online (Sandbox Code Playgroud)
使用Spring数据存储库查询,我想检索所有唯一的行(唯一的名称,xAxis,yAxis)
我正在尝试这样的事情
@Query("select distinct a.name, a.xAxis, a.yAxis from CollectedData a")
List<CollectedData> findAllDistinctData();
Run Code Online (Sandbox Code Playgroud)
所以,当我这样做的时候
List<CollectedData> records= findAllDistinctData();
for (CollectedData record : records) { //Exception on this line
}
Run Code Online (Sandbox Code Playgroud)
异常[Ljava.lang.Object; 无法转换为CollectedData.
有没有其他方法可以为此编写查询?
我想编写一个使用SMTP TLS连接gmail服务器的程序.我使用的是本页提到的代码:
http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/
我正在连接超时异常.如果我使用SMTP SSL,我可以成功发送电子邮件.
public void sendUsingSMTP_TLS() {
final String username = "username@gmail.com";
final String password = "password";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from-email@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("to-email@gmail.com"));
message.setSubject("Testing Subject");
message.setText("Dear Mail Crawler,"
+ "\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) { …Run Code Online (Sandbox Code Playgroud)