- 浏览: 23565 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
137459045:
http://mirrors.sonic.net/apache ...
解析Excel和XML -
137459045:
<result name="success& ...
解析Excel和XML -
137459045:
一,生成server key
keytool -genkey ...
解析Excel和XML -
137459045:
InputStream is = Sclessontabl ...
解析Excel和XML -
137459045:
HTTP Status 500 -
----------- ...
解析Excel和XML
解析Excel和XML
解析Excel:
解析XML:
/** * 通过文件的路径得到一个工作表实例 * @param filePath 文件路径 * @throws IOException */ public void initWorkBook(String filePath) throws IOException { File file = new File(filePath); InputStream is = new FileInputStream(file); Workbook workbook = null; // 判断文件是什么格式 if(filePath.endsWith(".xls")) { workbook = new HSSFWorkbook(is);//Excel 2003 } else if(filePath.endsWith(".xlsx")) { workbook = new XSSFWorkbook(is);//Excel 2007 } parseWorkbook(workbook);//解析workbook中的内容 } /** * 解析Workbook对象 * @param workbook */ public void parseWorkbook(Workbook workbook) { // 得到Sheet的个数 int sheetNum = workbook.getNumberOfSheets(); Sheet sheet = null; // 遍历sheet for(int i=0; i<sheetNum; i++) { sheet = workbook.getSheetAt(i); parseSheet(sheet);//解析Sheet中的内容 } } /** * 解析Sheet对象 * @param sheet */ public void parseSheet(Sheet sheet) { Row row = null; Iterator<Row> iterator = sheet.iterator(); while(iterator.hasNext()) { row = iterator.next(); parseRow(row);//解析Row中的内容 } } /** * 解析Row对象 * @param row */ public void parseRow(Row row) { Cell cell = null; Iterator<Cell> iterator = row.iterator(); while(iterator.hasNext()) { cell = iterator.next(); cell.setCellType(Cell.CELL_TYPE_STRING); System.out.println(cell.getStringCellValue()); } }
解析XML:
// 初始化解析XML的环境 SAXReader reader = new SAXReader(); Document document = reader.read(processConfigFile); Element root = document.getRootElement(); // 遍历XML中的节点 if("nodeName".equalsIgnoreCase(root.getName())) { Iterator<Element> it = root.elementIterator(); ProcessMonitor processMonitor = null; while(it.hasNext()) { Element ele = it.next(); } }
评论
16 楼
137459045
2013-01-15
http://mirrors.sonic.net/apache/
15 楼
137459045
2012-12-28
<result name="success" type="redirect">/displayCart.action?userId=${userId}</result>
14 楼
137459045
2012-12-17
一,生成server key
keytool -genkey alias jyd -keyalg RSA -keypass 123456 -storepass 123456 -keystore .keystore -validity 3600
二,导出证书
keytool -export -trustcacerts -alias jyd -file server.cer -keystore .keystore -storepass 123456
三,将证书导入jdk证书信任库
keytool -import -trustcacerts -alias tomcat -file server.cer -keystore D:jdk1.6.0_24\jre\lib\security\cacerts -storepass 123456
keytool -genkey alias jyd -keyalg RSA -keypass 123456 -storepass 123456 -keystore .keystore -validity 3600
二,导出证书
keytool -export -trustcacerts -alias jyd -file server.cer -keystore .keystore -storepass 123456
三,将证书导入jdk证书信任库
keytool -import -trustcacerts -alias tomcat -file server.cer -keystore D:jdk1.6.0_24\jre\lib\security\cacerts -storepass 123456
13 楼
137459045
2012-12-07
InputStream is = SclessontableAction.class.getClassLoader().getResourceAsStream("videoip.properties"); Properties prop = new Properties(); prop.load(is);
12 楼
137459045
2012-06-30
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax.servlet.ServletException: java.lang.NoSuchFieldError: deferredExpression
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause
javax.servlet.ServletException: java.lang.NoSuchFieldError: deferredExpression
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause
java.lang.NoSuchFieldError: deferredExpression
org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:212)
org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166)
org.apache.jsp.page.processMonitor.process_005flist_jsp._jspDestroy(process_005flist_jsp.java:38)
org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:61)
org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.35
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax.servlet.ServletException: java.lang.NoSuchFieldError: deferredExpression
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause
javax.servlet.ServletException: java.lang.NoSuchFieldError: deferredExpression
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause
java.lang.NoSuchFieldError: deferredExpression
org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:212)
org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166)
org.apache.jsp.page.processMonitor.process_005flist_jsp._jspDestroy(process_005flist_jsp.java:38)
org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:61)
org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.35
11 楼
137459045
2012-06-12
final List<Object> condition = new ArrayList<Object>();
final StringBuffer query = new StringBuffer();
query.append(" 1=1 ");
if(jobId != null && !"".equals(jobId)) {
query.append(" and id.jobId like ? escape '#' ");
condition.add("%" + jobId.replace("%", "#%").replace("_", "#_") + "%");
}
// 构造stepId的条件
if(stepId != null && stepId != -1) {
query.append(" and id.jobStepId=? ");
condition.add(stepId);
}
if(statusId != null &&statusId != -1) {
query.append(" and id.jobStatusId=? ");
condition.add(statusId);
}
if(createStartTime != null && !"".equals(createStartTime)) {
query.append(" and jobCreatTime>=? ");
condition.add(createStartTime.replace("-", "_") + " 00:00:00");
}
if(createEndTime != null && !"".equals(createEndTime)) {
query.append(" and jobCreatTime<=? ");
condition.add(createEndTime.replace("-", "_") + "23:59:59");
}
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
String hql = "from JobDispatch where " + query.toString() + "order by jobCreatTime desc";
Query query = session.createQuery(hql);
// 为query赋参数
for(int i=0; i<condition.size(); i++) {
Object obj = condition.get(i);
if(obj instanceof Integer) {
query.setInteger(i, (Integer)obj);
} else if(obj instanceof String) {
query.setString(i, (String)obj);
}
}
return query.setFirstResult(startRow).setMaxResults(size).list();
}
});
}
final StringBuffer query = new StringBuffer();
query.append(" 1=1 ");
if(jobId != null && !"".equals(jobId)) {
query.append(" and id.jobId like ? escape '#' ");
condition.add("%" + jobId.replace("%", "#%").replace("_", "#_") + "%");
}
// 构造stepId的条件
if(stepId != null && stepId != -1) {
query.append(" and id.jobStepId=? ");
condition.add(stepId);
}
if(statusId != null &&statusId != -1) {
query.append(" and id.jobStatusId=? ");
condition.add(statusId);
}
if(createStartTime != null && !"".equals(createStartTime)) {
query.append(" and jobCreatTime>=? ");
condition.add(createStartTime.replace("-", "_") + " 00:00:00");
}
if(createEndTime != null && !"".equals(createEndTime)) {
query.append(" and jobCreatTime<=? ");
condition.add(createEndTime.replace("-", "_") + "23:59:59");
}
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
String hql = "from JobDispatch where " + query.toString() + "order by jobCreatTime desc";
Query query = session.createQuery(hql);
// 为query赋参数
for(int i=0; i<condition.size(); i++) {
Object obj = condition.get(i);
if(obj instanceof Integer) {
query.setInteger(i, (Integer)obj);
} else if(obj instanceof String) {
query.setString(i, (String)obj);
}
}
return query.setFirstResult(startRow).setMaxResults(size).list();
}
});
}
10 楼
137459045
2012-06-08
antlr-2.7.6.jar asm-attrs.jar"asm.jar"aspectjrt.jar"
aspectjweaver.jar"
c3p0-0.9.0.jar"
cglib-nodep-2.1_3.jar"
commons-beanutils-1.7.0.jar"
commons-collections-3.2.jar"
commons-fileupload-1.2.1.jar"
commons-io-1.3.2.jar"
commons-lang-2.3.jar"
commons-logging.jar"
commons-pool-1.3.jar"
dom4j-1.6.1.jar"
ehcache-1.2.jar"
ezmorph-1.0.3.jar"
freemarker-2.3.16.jar"
hibernate3.jar"
javassist-3.7.ga.jar"
jcommon-1.0.10.jar"
jfreechart-1.0.6.jar"
json-lib-2.1.jar"
jstl-api-1.2.jar"
jstl-impl-1.2.jar"
jstl.jar"
jta.jar"
junit-4.10.jar"
log4j-1.2.15.jar"
mail.jar"
mysql-connector-java-5.1.5-bin.jar"
ognl-3.0.jar"
poi-3.6-20091214.jar"
poi-contrib-3.6-20091214.jar"
poi-ooxml-3.6-20091214.jar"
poi-ooxml-schemas-3.6-20091214.jar"
poi-scratchpad-3.6-20091214.jar"
quartz-all-1.6.0.jar"
smtp.jar"
spring.jar"
standard.jar"
stax-api-1.0.1.jar"
struts2-core-2.2.1.1.jar"
struts2-json-plugin-2.3.1.2.jar"
struts2-spring-plugin-2.2.1.1.jar"
xmlbeans-2.3.0.jar"
xwork-core-2.2.1.1.jar"
aspectjweaver.jar"
c3p0-0.9.0.jar"
cglib-nodep-2.1_3.jar"
commons-beanutils-1.7.0.jar"
commons-collections-3.2.jar"
commons-fileupload-1.2.1.jar"
commons-io-1.3.2.jar"
commons-lang-2.3.jar"
commons-logging.jar"
commons-pool-1.3.jar"
dom4j-1.6.1.jar"
ehcache-1.2.jar"
ezmorph-1.0.3.jar"
freemarker-2.3.16.jar"
hibernate3.jar"
javassist-3.7.ga.jar"
jcommon-1.0.10.jar"
jfreechart-1.0.6.jar"
json-lib-2.1.jar"
jstl-api-1.2.jar"
jstl-impl-1.2.jar"
jstl.jar"
jta.jar"
junit-4.10.jar"
log4j-1.2.15.jar"
mail.jar"
mysql-connector-java-5.1.5-bin.jar"
ognl-3.0.jar"
poi-3.6-20091214.jar"
poi-contrib-3.6-20091214.jar"
poi-ooxml-3.6-20091214.jar"
poi-ooxml-schemas-3.6-20091214.jar"
poi-scratchpad-3.6-20091214.jar"
quartz-all-1.6.0.jar"
smtp.jar"
spring.jar"
standard.jar"
stax-api-1.0.1.jar"
struts2-core-2.2.1.1.jar"
struts2-json-plugin-2.3.1.2.jar"
struts2-spring-plugin-2.2.1.1.jar"
xmlbeans-2.3.0.jar"
xwork-core-2.2.1.1.jar"
9 楼
137459045
2012-05-26
定时器:
<bean id="reportJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="cn.hs.dpl.web.action.TimerAction" />
<property name="jobDataAsMap">
<map>
<entry key="menuService">
<ref bean="menuService"/>
</entry>
</map>
</property>
</bean>
<!--
CronTriggerBean指定工作的准确运行时间
-->
<bean id="cronReportTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="reportJob" />
<property name="cronExpression">
<!-- 设置每天晚上11点的时候,会自动进行版本的定制化 -->
<value>0 0 23 ? * *</value>
</property>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronReportTrigger" />
</list>
</property>
</bean>
<bean id="reportJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="cn.hs.dpl.web.action.TimerAction" />
<property name="jobDataAsMap">
<map>
<entry key="menuService">
<ref bean="menuService"/>
</entry>
</map>
</property>
</bean>
<!--
CronTriggerBean指定工作的准确运行时间
-->
<bean id="cronReportTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="reportJob" />
<property name="cronExpression">
<!-- 设置每天晚上11点的时候,会自动进行版本的定制化 -->
<value>0 0 23 ? * *</value>
</property>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronReportTrigger" />
</list>
</property>
</bean>
8 楼
137459045
2012-05-26
多对多
<set name="appInfoSet" cascade="save-update" table="v5r1_customerlib_app">
<key column="customerLibId"></key>
<many-to-many class="cn.hs.dpl.pojo.AppInfo">
<column name="appId">
</column>
</many-to-many>
</set>
<set name="CustomerLibSet" table="v5r1_customerlib_app" lazy="true">
<key column="appId"></key>
<many-to-many class="cn.hs.dpl.pojo.CustomerLib" column="customerLibId"></many-to-many>
</set>
一对多
<set name="ruleReviewStateSet" inverse="true" lazy="true">
<key>
<column name="appId" sql-type="int(1)"></column>
</key>
<one-to-many class="cn.hs.dpl.pojo.RuleReviewState" />
</set>
<many-to-one name="appInfo">
<column name="appId" sql-type="int(1)">
</column>
</many-to-one>
一对一
<many-to-one name="person" class="Person" column="PERSON_ID" unique="true"/>
<one-to-one name"employee" class="Employee">
联合主键
<composite-id>
<key-property name="ruleId" type="java.lang.Integer">
<column name="ruleId" sql-type="int(1)">
</column>
</key-property>
<key-many-to-one name="appInfo">
<column name="appId" sql-type="int(1)">
</column>
</key-many-to-one>
</composite-id>
<composite-id>
<key-property name="appId" type="java.lang.Integer">
<column name="appId" sql-type="int(1)">
</column>
</key-property>
<key-property name="appName" type="java.lang.String">
<column name="appName" sql-type="varchar(32)">
</column>
</key-property>
</composite-id>
<set name="appInfoSet" cascade="save-update" table="v5r1_customerlib_app">
<key column="customerLibId"></key>
<many-to-many class="cn.hs.dpl.pojo.AppInfo">
<column name="appId">
</column>
</many-to-many>
</set>
<set name="CustomerLibSet" table="v5r1_customerlib_app" lazy="true">
<key column="appId"></key>
<many-to-many class="cn.hs.dpl.pojo.CustomerLib" column="customerLibId"></many-to-many>
</set>
一对多
<set name="ruleReviewStateSet" inverse="true" lazy="true">
<key>
<column name="appId" sql-type="int(1)"></column>
</key>
<one-to-many class="cn.hs.dpl.pojo.RuleReviewState" />
</set>
<many-to-one name="appInfo">
<column name="appId" sql-type="int(1)">
</column>
</many-to-one>
一对一
<many-to-one name="person" class="Person" column="PERSON_ID" unique="true"/>
<one-to-one name"employee" class="Employee">
联合主键
<composite-id>
<key-property name="ruleId" type="java.lang.Integer">
<column name="ruleId" sql-type="int(1)">
</column>
</key-property>
<key-many-to-one name="appInfo">
<column name="appId" sql-type="int(1)">
</column>
</key-many-to-one>
</composite-id>
<composite-id>
<key-property name="appId" type="java.lang.Integer">
<column name="appId" sql-type="int(1)">
</column>
</key-property>
<key-property name="appName" type="java.lang.String">
<column name="appName" sql-type="varchar(32)">
</column>
</key-property>
</composite-id>
7 楼
137459045
2012-05-16
备注:port 该属性值必须和上边的redirectPort保持一致
keystoreFile必须是生成证书文件的路径
keystorePass必须是生成证书时所写的storepass密码
如果上边的配置完毕之后可以重启tomcat,访问"https://服务器IP:8443",如果成功访问就配置完成,否则检查配置是否正确。
上边配置完成之后还可以通过http进行访问,也就是http和https访问方式并存,如果要强制用https访问,可以做如下配置
编辑"tomcat目录/conf/web.xml",在welcome-file-list标签下边加上:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
5. 开机自动启动项目
开机自动启动mysql和tomcat,项目在服务器断电或者重启之后,不用手动再启动项目
编辑"/etc/ rc.local"在该文件中加入
service mysql restart
/home/brj/apache-tomcat-6.0.32/bin/startup.sh
备注:
service mysql restart
#mysql 已经配置成系统服务,所以用service启动
/home/brj/apache-tomcat-6.0.32/bin/startup.sh
#tomcat没有配置服务,只能根据startup.sh所在的路径进行访问启动
keystoreFile必须是生成证书文件的路径
keystorePass必须是生成证书时所写的storepass密码
如果上边的配置完毕之后可以重启tomcat,访问"https://服务器IP:8443",如果成功访问就配置完成,否则检查配置是否正确。
上边配置完成之后还可以通过http进行访问,也就是http和https访问方式并存,如果要强制用https访问,可以做如下配置
编辑"tomcat目录/conf/web.xml",在welcome-file-list标签下边加上:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
5. 开机自动启动项目
开机自动启动mysql和tomcat,项目在服务器断电或者重启之后,不用手动再启动项目
编辑"/etc/ rc.local"在该文件中加入
service mysql restart
/home/brj/apache-tomcat-6.0.32/bin/startup.sh
备注:
service mysql restart
#mysql 已经配置成系统服务,所以用service启动
/home/brj/apache-tomcat-6.0.32/bin/startup.sh
#tomcat没有配置服务,只能根据startup.sh所在的路径进行访问启动
6 楼
137459045
2012-05-16
2. 把项目上传的服务器的任意目录,然后修改"tomcat目录/conf/server.xml",在server.xml最下边的host标签中加入:
<Context path="" docBase="项目所在的路径包含项目名" debug="0" reloadable="false" crossContext="true">
重启tomcat然后在浏览器中访问"http://服务器IP:8080/"可直接访问到我们上传的项目
以上两种项目发布方式,第一种访问需要加项目名字,第二种不需要加
4. 把访问方式设置成https
1.生成证书:
如果 java的环境变量配置完成之后,keytool命令便可以使用,该命令位于"JAVA_HOME/bin"下,生成证书需要如下步骤
执行"keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore /usr/server.keystore -validity 3600"
用户名输入域名,如128.18.191.143(建议时服务器的IP,不然证书会无效),其它可以全部以 enter 跳过也可以输入相关的信息,最后确认,此时会在/usr下生成server.keystore 文件。
注:参数 -keypass和-storepass来指定该证书的密码
参数 -keystore指定该证书的生成路径
参数 -validity 指证书的有效期(天),缺省有效期只有90天,这里用3600天。
根据server.keystore生成客户端安装的证书,执行"keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit"
注:参数 -file来指定该安装证书的生成路径
参数 -keystore指定server.keystore文件所在的路径
参数 -storepass指定生成server.keystore文件证书的密码
命令执行完毕之后会生成一个server.cer的客户端安装文件,可供用户下载安装,具体安装和说明
2.配置tomcat
证书生成完毕之后,开始配置tomcat,编辑"tomcat目录/conf/server.xml",找到
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
在这句话下边加上:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/server.keystore"
keystorePass="changeit"/>
<Context path="" docBase="项目所在的路径包含项目名" debug="0" reloadable="false" crossContext="true">
重启tomcat然后在浏览器中访问"http://服务器IP:8080/"可直接访问到我们上传的项目
以上两种项目发布方式,第一种访问需要加项目名字,第二种不需要加
4. 把访问方式设置成https
1.生成证书:
如果 java的环境变量配置完成之后,keytool命令便可以使用,该命令位于"JAVA_HOME/bin"下,生成证书需要如下步骤
执行"keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore /usr/server.keystore -validity 3600"
用户名输入域名,如128.18.191.143(建议时服务器的IP,不然证书会无效),其它可以全部以 enter 跳过也可以输入相关的信息,最后确认,此时会在/usr下生成server.keystore 文件。
注:参数 -keypass和-storepass来指定该证书的密码
参数 -keystore指定该证书的生成路径
参数 -validity 指证书的有效期(天),缺省有效期只有90天,这里用3600天。
根据server.keystore生成客户端安装的证书,执行"keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit"
注:参数 -file来指定该安装证书的生成路径
参数 -keystore指定server.keystore文件所在的路径
参数 -storepass指定生成server.keystore文件证书的密码
命令执行完毕之后会生成一个server.cer的客户端安装文件,可供用户下载安装,具体安装和说明
2.配置tomcat
证书生成完毕之后,开始配置tomcat,编辑"tomcat目录/conf/server.xml",找到
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
在这句话下边加上:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/server.keystore"
keystorePass="changeit"/>
5 楼
137459045
2012-05-16
度 -sh 文件夹的大小
4 楼
137459045
2012-05-16
status 查看linux中mysql的版本
service mysqld restart linux的mysql启动和关闭
cat /proc/version uanme -a 查看linux版本
free -m 查看内存使用情况
df -m 查看硬盘使用情况
netstat -tln 查看linux的端口使用情况
lsof -i :7710 查看端口被那个程序使用
chkconfig -list|grep -i fire 查看所有服务中的防火墙
SuSEfirewall2 stop 停用SuSe的防火墙
uname -a 查看内核版本
service mysqld restart linux的mysql启动和关闭
cat /proc/version uanme -a 查看linux版本
free -m 查看内存使用情况
df -m 查看硬盘使用情况
netstat -tln 查看linux的端口使用情况
lsof -i :7710 查看端口被那个程序使用
chkconfig -list|grep -i fire 查看所有服务中的防火墙
SuSEfirewall2 stop 停用SuSe的防火墙
uname -a 查看内核版本
3 楼
137459045
2012-05-16
页面上
var params = {"srvCategoryOptionId":srvId};
同步
$.ajax({
type: "POST",
url: url,
data: params,
dataType: "json",
async: false,
success: function(data){
$.each(data, function(){
});
}
});
异步:
$.ajax("findSub/getSubCategory.action", params, function (data){
$.each(data, function(){
});
}, "json");
异步上传
$.ajaxFileUpload ({
url:'appCommit/parsePostiveRate.action?AppId='+appId,//用于文件上传的服务器端请求地址
secureuri:true,//一般设置为false
fileElementId:'postiveDoc',//文件上传空间的id属性 <input type="file" id="file" name="file" />
dataType: 'json',//返回值类型 一般设置为json
success: function (data, status) {
},
error: function (data, status, e) {//服务器响应失败处理函数
}
});
文件下载
FileInputStream fis=new FileInputStream(file);
https
this.getResponse().setHeader("Pragma", "public");
this.getResponse().setHeader("Cache-Control", "max-age=30");
this.getResponse().setContentType("application/force-download");
this.getResponse().setHeader("content-length", String.valueOf(file.length()));
this.getResponse().setHeader("Content-disposition", "attachment;filename="+ new String(fileName.getBytes("gb2312"),"iso8859-1"));
ServletOutputStream os = this.getResponse().getOutputStream();
int length=0;
while((length=fis.read())!=-1){
os.write(length);
}
var params = {"srvCategoryOptionId":srvId};
同步
$.ajax({
type: "POST",
url: url,
data: params,
dataType: "json",
async: false,
success: function(data){
$.each(data, function(){
});
}
});
异步:
$.ajax("findSub/getSubCategory.action", params, function (data){
$.each(data, function(){
});
}, "json");
异步上传
$.ajaxFileUpload ({
url:'appCommit/parsePostiveRate.action?AppId='+appId,//用于文件上传的服务器端请求地址
secureuri:true,//一般设置为false
fileElementId:'postiveDoc',//文件上传空间的id属性 <input type="file" id="file" name="file" />
dataType: 'json',//返回值类型 一般设置为json
success: function (data, status) {
},
error: function (data, status, e) {//服务器响应失败处理函数
}
});
文件下载
FileInputStream fis=new FileInputStream(file);
https
this.getResponse().setHeader("Pragma", "public");
this.getResponse().setHeader("Cache-Control", "max-age=30");
this.getResponse().setContentType("application/force-download");
this.getResponse().setHeader("content-length", String.valueOf(file.length()));
this.getResponse().setHeader("Content-disposition", "attachment;filename="+ new String(fileName.getBytes("gb2312"),"iso8859-1"));
ServletOutputStream os = this.getResponse().getOutputStream();
int length=0;
while((length=fis.read())!=-1){
os.write(length);
}
2 楼
137459045
2012-05-16
3.Spring定时器,项目用配置发布之后,Spring的定时机制,在执行的时候,执行了两次,原因:把tomcat目录/conf/server.xml中的host标签属性baseapp的值置为“”就行了
4.mysql 用连接池时 8小时之后发现项目报错,无法正常访问,但是访问几次,项目就恢复正常运行,原因:当项目把连接池中所有的连接用完之后,才可以正常访问,mysql在默认情况,把每个连接保持8(28800秒)小时,超过8小时连接将无效,解决办法:在配置连接池的时候加上在8小时之内对所有的连接进行验证是否可用idleConnectionTestPeriod和maxIdleTime,但是无法解决项目运行时,mysql重启的情况
5.struts2的json,在struts2的配置中加上
<action name="destorySessionData" class="importAppPageAction" method="destorySessionData" >
<result type="json"/>
</action>
String jsonString = JSONObject.fromObject(map).toString();
String jsonString = JSONArray.fromObject(list).toString();
HttpServletResponse response = getResponse();
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(jsonString);
4.mysql 用连接池时 8小时之后发现项目报错,无法正常访问,但是访问几次,项目就恢复正常运行,原因:当项目把连接池中所有的连接用完之后,才可以正常访问,mysql在默认情况,把每个连接保持8(28800秒)小时,超过8小时连接将无效,解决办法:在配置连接池的时候加上在8小时之内对所有的连接进行验证是否可用idleConnectionTestPeriod和maxIdleTime,但是无法解决项目运行时,mysql重启的情况
5.struts2的json,在struts2的配置中加上
<action name="destorySessionData" class="importAppPageAction" method="destorySessionData" >
<result type="json"/>
</action>
String jsonString = JSONObject.fromObject(map).toString();
String jsonString = JSONArray.fromObject(list).toString();
HttpServletResponse response = getResponse();
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(jsonString);
1 楼
137459045
2012-05-16
1.java web项目用配置发布时,访问出现404(本地或用项目名访问完全好用),原因:strurs2的配置文件的命名空间的名字和webapps下的项目名字一样
2.项目运行之后,发现项目在上传文件的时候,大部分无法上传,最后用https上传就行了
2.项目运行之后,发现项目在上传文件的时候,大部分无法上传,最后用https上传就行了
相关推荐
在项目中引入“解析excel和xml的jar”可能意味着这个jar包含了对这两种格式的解析支持。它可能封装了上述提到的Apache POI和Java的XML解析库,提供了一种方便的方式来处理这两种数据格式,而无需手动管理多个依赖。 ...
在Java开发中,解析Excel和XML配置文件是常见的任务,特别是在构建可配置系统或处理数据导入导出时。Spring框架的出现,使得这项工作变得更加简便。本Demo将演示如何使用Java来解析Excel和XML配置文件,并基于这些...
本篇将详细探讨如何解析Excel文件并将其内容写入到XML中。 首先,我们要理解Excel文件的结构。Excel文件通常是二进制的`.xlsx`格式,它由多个基于Open XML标准的XML文件组成,存储在一个压缩的ZIP文件内。我们可以...
实例一:解析Excel文件 使用Apache POI库是Java中解析Excel文件的常见方式。POI提供了HSSF(旧版Excel .xls格式)和XSSF(新版本Excel .xlsx格式)API。以下是一个简单的读取Excel文件的例子: 1. 引入Apache POI库...
总的来说,通过Apache POI和JDOM,你可以轻松地实现Excel到XML的转换,这对于数据迁移、数据交换或数据存储在不同系统之间具有很大的价值。同时,这也需要对Java编程、Excel文件结构以及XML语法有深入的理解。
本主题涉及的jar包是为了解析和操作Excel(主要基于Apache POI)和XML(可能包括DOM4J和XMLBeans)文件。下面我们将详细探讨这些库及其在Excel和XML处理中的作用。 1. Apache POI: - **poi-3.11-20141221.jar**: ...
综上所述,将Excel文件转换为XML数据是一项涉及数据读取、解析、格式转换和数据结构理解的技术任务。通过这种方式,我们可以利用XML的优势来处理和传输数据,提高数据的可用性和互操作性。在实际项目中,应根据具体...
本篇将深入探讨如何将Excel文件解析并转换为XML格式,主要涉及的技术包括Java中的Apache POI库和DOM4J库。 首先,Apache POI是Java领域用于读写Microsoft Office格式文件的库,其中包括Excel(XLS和XLSX)。通过POI...
关于XML和Excel文件格式转换的一些技术要点: - **XML**:XML(Extensible Markup Language)是一种标记语言,用于存储结构化数据。它以文本形式存储,易于阅读和编写,同时也方便机器解析。TestLink的XML导出包含...
我们可以利用这些类来创建、解析和操作XML文件。 接下来,让我们看看如何实现一个简单的C#控制台程序,用于将Excel文件转换为XML: 1. 首先,我们需要引入必要的库。对于Excel处理,可以使用EPPlus;对于XML处理,...
4. **生成XML**:工具解析Excel数据并生成符合TestLink导入规范的XML文件。 5. **导入TestLink**:最后,用户将生成的XML文件导入到TestLink系统中,数据会自动映射到相应的测试结构中。 在实际应用中,这样的工具...
- 在Excel中处理XML文件,可以通过VBA脚本来实现,如导入、导出、解析和操作XML数据。 3. **XML文件操作步骤**: - 使用Excel打开XML文件:可以将XML文件导入到工作表中,形成表格数据。 - VBA读取XML:通过`...
3. XML解析和生成:学习如何使用.NET中的System.Xml命名空间,包括XmlDocument、XmlNode等类,来创建、解析和操作XML文档。 4. 数据转换算法:理解如何从Excel表格结构映射到XML元素结构,处理不同数据类型和复杂...
本教程将探讨如何在Unity中处理多语言操作,并利用Excel工具转换数据为XML、JSON和CSV格式,以便于管理和导入到项目中。 首先,让我们了解Unity中的多语言支持。Unity允许开发者创建一个资源包,包含不同语言版本的...
### Java 实现 Excel 转化为 XML 的过程解析 #### 概述 在实际工作中,数据转换是一项常见的任务,特别是在不同系统间进行数据交换时。本文将详细讲解如何使用 Java 语言实现从 Excel 文件到 XML 文件的转换,并...
总结来说,这个系统利用了Web技术和Java后端服务,结合Apache Tomcat的部署能力,实现了Excel到XML的批量转换,为用户提供了便捷的数据格式转换工具。这样的解决方案在数据分析、数据交换和自动化工作流中具有广泛的...
如果对XML和TestLink的API有深入理解,还可以编写脚本自动化这个转换过程,提高效率。 总之,“excel转xml-适配TestLink”是一个将Excel测试用例数据转换为XML格式,以便在TestLink中进行有效管理和执行的过程。...
首先读取XML文件,解析其结构,然后创建一个新的Excel工作表,将XML元素和属性映射到相应的行和列,最后保存为Excel文件。 在实际开发中,我们还需要考虑错误处理、性能优化以及数据类型的转换,因为Excel和XML对...