我在控制台上手动运行tomcat 6作为Windows服务.我需要在启动之前更改java_opts.我怎么做?另外,有没有办法可以动态地查看日志?
有什么办法可以限制stdout.logApache Tomcat中文件的大小吗?作为服务system.out语句运行时,请转到stdout文件.但是我需要一种机制,通过在达到2GB大小之后创建新文件或者类似的东西来控制stdout日志文件的大小.截至目前,每天都会创建一个新文件,但这还不够.
一旦达到大小限制,我正在尝试将我的tomcat配置为翻转日志文件.我正在运行tomcat作为Windows服务,并将我的所有stdout重定向到catalina.log.这是我通过logging.properties配置来设置大小限制的方式.但它没有用.
logging.properties
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.limit = 100000 # size 100kb
1catalina.org.apache.juli.FileHandler.count = 5
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
2localhost.org.apache.juli.FileHandler.prefix = localhost.
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
3manager.org.apache.juli.FileHandler.prefix = manager.
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
############################################################
# Facility …Run Code Online (Sandbox Code Playgroud) 这是context.xml中的我的Resource元素::
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:XE"
username="hr" password="hr" maxActive="20" maxIdle="10"
maxWait="-1"/>
Run Code Online (Sandbox Code Playgroud)
这是我在web.xml中的资源引用:
<resource-ref>
<description>Oracle Datasource</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
然后@Resource我在代码中使用注释:
@Resource(mappedName = "jdbc/myoracle")
DataSource ds;
Run Code Online (Sandbox Code Playgroud)
当我尝试在ds上使用getConnection()创建连接对象时,我在运行时得到一个空指针异常:
Oct 24, 2011 12:18:21 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: java.lang.NullPointerException
at jdbc.patientDaoImpl.get_patients(patientDaoImpl.java:248)
at org.apache.jsp.index2_jsp._jspService(index2_jsp.java:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:223)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) …Run Code Online (Sandbox Code Playgroud) 我有一个有时间的字符串.我需要把它四舍五入到最近的小时和最近的一分钟.我怎么在java中做到这一点?例如:字符串时间="12:58:15"; 我需要把它整理到1:00:00和12:58:00
我在oracle数据库中插入一条记录,我从java bean中获取值.它像这样::
insert into allergy (patient_id, allergy, reaction) values(seq_patient.nextval, '" + bean.getPatient_allergy() + "', '"+ bean.getReaction()+"')";
Run Code Online (Sandbox Code Playgroud)
但过敏的值可能会产生撇号,导致sql失败,ORA-00917:缺少逗号.有没有办法克服这个问题?
我正在使用解析器解析以下XML:
<Person>
<Name>Test</Name>
<Phone>111-111-2222</OtherPhone>
<Address>lee h&y</Address>
<Person>
Run Code Online (Sandbox Code Playgroud)
sax解析器的characters方法只读取地址数据,直到'lee h',因为它不将'&'视为一个字符.我需要在address元素中获取完整的文本.关于我应该如何做的任何想法?这是我的sax解析器(这里的地址是一个标志,它通知XML中存在一个地址元素):
boolean address=false;
public void startElement(String uri, String localName,
String qName, Attributes attributes)
throws SAXException {
if (qName.equalsIgnoreCase("Address")) {
address= true;
}
public void characters(char ch[], int start, int length)
throws SAXException {
String data = new String(ch, start, length);
if (address) {
System.out.println("Address is: "+data);
address = false;
}
Run Code Online (Sandbox Code Playgroud)
输出是:: lee h