SSH框架发布的应用,修改config.properties文件后,只有*.jsp路径可以访问,*.action路径就不能访问了,即使修改的是config.properties中的注释也不行。后台没有任何错误输出,而把项目从tomcat删除了,再重新用myeclipse部署一下又可以了。到底是为什么呢?求解答!
tomcat版本为:apache-tomcat-6.0.39
jdk的版本为:1.6
strus.xml内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 指定由spring负责action对象的创建 -->
<constant name="struts.objectFactory" value="spring" />
<!-- 所有匹配*.action的请求都由struts2处理 -->
<constant name="struts.action.extension" value="action" />
<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />
<!-- struts配置文件改动后,是否重新加载 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 设置浏览器是否缓存静态内容 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 请求参数的编码方式 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<!-- 国际化-->
<constant name="struts.custom.i18n.resources" value="message" />
<!-- 文件上传最大值 -->
<constant name="struts.multipart.maxSize" value="104857600" />
<!-- 让struts2支持动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 让struts2支持静态方法调用 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
<!-- Action名称中是否还是用斜线 -->
<constant name="struts.enable.SlashesInActionNames" value="false" />
<!-- 允许标签中使用表达式语法 -->
<constant name="struts.tag.altSyntax" value="true" />
<!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->
<constant name="struts.dispatcher.parametersWorkaround" value="false" />
<!-- 定义struts注解 解析action包 -->
<constant name="struts.convention.package.locators" value="action"/>
<!-- 定义struts注解 内容的父类包 -->
<constant name="struts.convention.default.parent.package" value="basePackage"/>
<!-- 定义临时文件存放位置-->
<constant name="struts.multipart.saveDir" value="/tmp"/>
<include file="struts-default.xml"></include>
<package name="basePackage" extends="struts-default">
<interceptors>
<!-- i18n拦截器 -->
<interceptor name="languageInterceptor" class="debt.framework.i18n.LanguageInterceptor" />
<!--token防重复提交拦截器 -->
<interceptor name="tokenInterceptor" class="debt.framework.authority.TokenInterceptor" />
<interceptor-stack name="languageStack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="tokenInterceptor"></interceptor-ref>
<interceptor-ref name="languageInterceptor"></interceptor-ref>
</interceptor-stack>
<!-- 权限拦截器 -->
<interceptor name="authorityInterceptor" class="debt.framework.authority.AuthorityInterceptor" />
<interceptor-stack name="authorityStack">
<interceptor-ref name="languageStack"></interceptor-ref>
<interceptor-ref name="authorityInterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 全局拦截器栈 -->
<default-interceptor-ref name="authorityStack" />
<global-results>
<result name="login" type="redirect">/login.jsp</result>
<result name="index" type="redirect">/index.jsp</result>
<result name="noAuthority">/error/noAuthority.jsp</result>
<result name="noSession" >/error/noSession.jsp</result>
<result name="strutsException">/error/strutsException.jsp</result>
<result name="processNext" >/platform/processNext.jsp</result>
<result name="processLog" >/platform/processLog.jsp</result>
<result name="chartMain" >/platform/chartMain.jsp</result>
<result name="processInstanceChart" >/platform/processInstanceChart.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="strutsException"
exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
</package>
</struts>
spring的配置文件如下:
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd " default-autowire="byName">
<!-- 开启定时器 任务
<task:annotation-driven/>
-->
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<!-- 引入属性文件 -->
<context:property-placeholder location="classpath:config.properties" />
<!-- 自动扫描dao和service包(自动注入) -->
<context:component-scan base-package="debt.**.dao,debt.**.service,debt.**.action,debt.springtask" />
<bean id="ftpUtil" class="debt.framework.util.FtpUtil">
<constructor-arg value="${ftp_ip}"/>
<constructor-arg value="${ftp_port}"/>
<constructor-arg value="${ftp_username}"/>
<constructor-arg value="${ftp_password}"/>
<constructor-arg value="${ftp_defaultPath}"/>
</bean>
<import resource="applicationContext-datasource.xml"/>
</beans>
applicationContext-datasource.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
" default-autowire="byName">
<!-- 数据源 c3p0连接池 配置 -->
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_username}" />
<property name="password" value="${jdbc_password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="10" />
<!-- 连接池最大使用连接数量 -->
<property name="maxActive" value="100" />
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="0" />
<!-- 连接池最小空闲 -->
<property name="minIdle" value="0" />
<!-- 获取连接最大等待时间 -1为无限制 -->
<property name="maxWait" value="60000" />
<!-- <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->
<property name="validationQuery" value="${validationQuery}" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="25200000" />
<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true" />
<!-- 监控数据库 -->
<!-- <property name="filters" value="stat" /> -->
<property name="filters" value="mergeStat" />
</bean>
<!-- sessionFactory -->
<bean name="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>debt.**.domain</value><!-- 扫描实体类,也就是平时所说的model -->
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
</props>
</property>
</bean>
<!-- 事务管理器 -->
<bean name="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 事务代理 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="new*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
<tx:method name="find*" propagation="REQUIRED" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!-- 织入事物代理 -->
<aop:config proxy-target-class="true">
<aop:pointcut id="ServiceMethod" expression="execution(* debt.*.service.*.*(..))||execution(* debt.springtask.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="ServiceMethod" />
</aop:config>
<!-- 配置druid监控spring jdbc -->
<bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
</bean>
<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">
<property name="patterns">
<list>
<value>debt.*.service.*</value>
</list>
</property>
</bean>
<aop:config>
<aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />
</aop:config>
</beans>
web.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<description>debt</description>
<display-name>debt</display-name>
<!-- WebApp Root -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webDagongCredit.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>600000</param-value>
</context-param>
<!-- spring配置文件位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>
</context-param>
<!-- druid数据源Web监控配置 -->
<filter>
<filter-name>druidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>/css/*,/style/*,/jslib/*,*.js,*.css,/druid*,/attached/*,*.jsp</param-value>
</init-param>
<init-param>
<param-name>principalSessionName</param-name>
<param-value>sessionInfo</param-value>
</init-param>
<init-param>
<param-name>profileEnable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<servlet>
<!-- druid监控页面 -->
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- openSessionInView配置 -->
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- Struts2配置 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 字符集编码配置 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<listener>
<listener-class>debt.framework.base.SysInitListener</listener-class>
</listener>
<!-- 配置session超时时间,单位分钟 -->
<session-config>
<session-timeout>120</session-timeout>
</session-config>
<!-- 配置错误页面 -->
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.jsp</location>
</error-page>
<!-- 项目起始页面 -->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
修改的那个config.properties:
sessionInfoName=sessionInfo
#方言
hibernate.dialect=org.hibernate.dialect.OracleDialect
#与库表同步方式 update
hibernate.hbm2ddl.auto=none
validationQuery=SELECT 1
#控制台打印sql
hibernate.show_sql=true
#格式化sql
hibernate.format_sql=true
#数据库连接驱动
driverClassName=oracle.jdbc.driver.OracleDriver
jdbc_url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc_username=admin
jdbc_password=password
#超级系统管理员
ADMIN_ROLE_ID =admin
ftp_ip=localhost
ftp_port=21
ftp_username=username
ftp_password=password
ftp_defaultPath=myFTP
uploadFieldName=filedata
uploadFileMaxSize=20971520
uploadFileExts=txt,rar,zip,doc,docx,xls,xlsx,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid
pjbguploadFileExts=.doc
uploadDirectory=attached
相关推荐
在开发Java Web应用程序时,尤其是使用Mybatis作为持久层框架的时候,经常遇到的一个问题是:当我们在IntelliJ IDEA中修改了Mapper XML文件后,需要手动重启Tomcat服务器才能看到改动的效果,这无疑降低了开发效率。...
5. **验证配置**:完成上述步骤后,重启Tomcat服务器,然后在你的应用程序中尝试访问这些配置文件,以确保它们已经被正确加载。 理解并掌握如何配置Tomcat的Classpath对于Java开发者来说至关重要,特别是对于那些...
可以通过修改`logging.properties`来定制日志级别和输出格式。 **六、安全配置** 1. **SSL/TLS配置**: 如果需要启用HTTPS,需要在`server.xml`中配置`Connector`元素的`scheme`、`secure`和`SSLEnabled`属性,并...
接着,重启 Tomcat,修改数据库配置文件 DatabasePool.properties 和 DatabaseConfig.properties,配置 IP 地址为当前机器的 IP。 在 Linux 部署项目中,还需要准备用户和组,包括 tlq 用户组和 cisfe 用户组。然后...
在 Tomcat 的 conf 目录下创建一个名为 `btm-config.properties` 的文件,其内容如下: ```properties bitronix.tm.serverId=tomcat-btm-node0 bitronix.tm.journal.disk.logPart1Filename=E:\myJava\apache-tomcat...
现在你可以通过 `service tomcatd start`、`service tomcatd stop` 和 `service tomcatd restart` 来启动、停止和重启Tomcat服务了。 如果你的系统是64位的,可能需要创建一些必要的软链接,因为32位库可能没有预装...
完成以上步骤后,重启 Tomcat 服务器。此时可以通过查看控制台输出和日志文件来验证 Log4j 是否配置成功。如果一切顺利,你将能在 `projectLogs.log` 文件中看到日志信息,并且控制台上也会有相应的输出。 #### 五...
4. **修改manager_config.properties文件** - 打开文件`C:\Program Files\ArcGIS\java\manager\service\lib\manager_config.properties`。 - 查找旧的机器名,并将其替换为新的机器名。 - 保存文件。 5. **修改...
<property name="configLocation" value="classpath:config/quartz.properties"/> ``` #### 5. Triggers 与 Jobs - **CronTriggerBean**:这是一种基于 cron 表达式的触发器,可以配置复杂的循环调度。例如,在...
对于非Windows服务方式启动的Tomcat 7,我们需要修改`catalina.bat`配置文件: 1. **编辑配置文件**: - 打开 `\apache-tomcat-7.0.57\bin\catalina.bat`。 - 在`Execute The Requested Command`下面,但不要换行...
完成修改后,保存文件并重启Tomcat。现在,当你修改应用的`.class`文件并重新编译后,JRebel会自动检测这些变化,并在Tomcat运行时动态更新,无需手动重启服务器。 对于使用集成开发环境(IDE)如MyEclipse的开发者...
配置XPlanner的`config.properties`文件,包括数据库连接信息、邮件服务器设置、项目管理参数等。 2. **Tomcat准备**: 安装并配置Tomcat服务器,确保其正常运行。Tomcat的主目录通常包含`conf`、`webapps`、`logs...
包括修改 Tomcat 的 bin 下的 DatabasePool.properties 文件和修改 `/home/oracle/jakarta-tomcat-5.0.30/webapps/seal/WEB-INF/classes/sys/db/` 目录下的 DatabaseConfig.properties 文件。 七、Linux 下用户准备...
1. **复制日志配置文件**: 将 `E:\solr-6.6.2/server/resources/log4j.properties` 复制到 `Tomcat/solr/WEB-INF/classes` 文件夹下。 2. **修改 web.xml 文件**: - 在 `Tomcat/solr` 目录下找到 `web.xml` 文件,...
- 完成配置后,重启Tomcat并使用不同域名访问,验证每个站点是否按预期工作。 9. **最佳实践** - 分离配置:考虑将虚拟主机配置移到单独的文件,以保持`server.xml`的整洁。 - 安全性:确保每个虚拟主机的权限...
这种做法可以解决传统Tomcat Session基于内存存储导致的问题,如服务器重启Session丢失、多服务器之间Session同步困难等。 首先,我们要理解Session的基本概念。在Web开发中,Session是用来跟踪用户状态的一种机制...
- **热更新**:在不重启Tomcat的情况下,更新WEB-INF下的类或资源文件,Tomcat能自动检测并重新加载。 6. **虚拟主机** - **多域名支持**:通过`Host`元素在server.xml中配置多个虚拟主机,每个主机可以绑定不同...
要更改日志格式,我们需要编辑`$CATALINA_HOME/conf/logging.properties`文件,这里`$CATALINA_HOME`是Tomcat的安装目录。将`org.apache.catalina.valves.AccessLogValve`配置改为如下: ```properties org.apache....