结构如下:
只列一个web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>onlinestore</display-name> <!--spring 配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:*.xml </param-value> </context-param> <!--log4j启动的监听器 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!--如果不设,默认为web.root,但最好设置,以免项目间冲突 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>onlinestore.root</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <!--spring的启动监听器--> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class> org.apache.cxf.transport.servlet.CXFServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/ws/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
全部的配置文件就不列了 这边记录一下问题
1.
org.springframework.beans.factory.BeanNotOfRequiredTypeException
用@Resource进行注入 名字没有问题 其他的类里都没问题 只发生在了service层的类里 如下:
@Resource private MemberServiceImpl memberServiceImpl;
后来发现是AOP进行声明式事务管理 里面的proxy-target-class没有设置(默认为false 表示使用JDK的代理(基于接口)) 因为我以上的注入是基于实现类注入的 所以会报这个错误
改正方法:1.改为MemberService memberServiceImpl;(如果改成memberService在Resource上要写明name)
2.设置proxy-target-class为true(CGLIB实现 基于继承)
这个问题更多可见:
http://ekisstherain.iteye.com/blog/1569236
2.
org.springframework.beans.MethodInvocationException: Property 'systemPropertiesModeName' threw exception; nested exception is org.springframework.core.ConstantException: Field 'SYSTEM_PROPERTIES_MODE_ENVIRONMENT' not found in class [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer]
额 这个错误就是关于资源文件的 这个..源于我把log4j.properties放在了classpath下 然后又使用了:
<context:property-placeholder location="classpath*:*.properties"/>
没有debug进去查看 估计就是解析错误了什么的 换成以下的就好了(老方式):
<bean id="springConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false"> <property name="locations"> <list> <value>classpath:db.properties</value> <value>classpath:hiber.properties</value> </list> </property> <property name="ignoreUnresolvablePlaceholders" value="true"></property> </bean>
3.
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: \WEB-INF\log4j.log
这个是鄙人看到web.xml里写的是这个:
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param>
然后在web-inf建了个classes文件夹 又放了进去的关系.....
不动就可以了... ...会被编译进去的(主要用eclipse 不会在项目里生成classes文件夹(会在临时空间里)就弄错了)
具体看这里:
相关推荐
官网下载CXF2.7.4完整jar文件^_^
从官网下载的cxf包太多,实际应用中,绝大部分都是非必须的,为了方便广大学习者,本附件提供了spring3.0.7与cxf2.7.4整合所需要的最少jar包,欢迎大家下载!
apache-cxf-2.7.4 cxf webservice
webserivce.、cxf整合spring,用的是spring3和cxf3。欢迎大家下载尝试
cxf+spring+hibernate整合添加功能实现修改版是对完整版的修正,有兴趣的同学可以下载研究一下。
20020414.jar,slf4j-api-1.5.8.jar,slf4j-log4j12-1.5.8.jar,spring-aop-3.0.7.RELEASE.jar,spring-asm-3.0.7.RELEASE.jar,spring-beans-3.0.7.RELEASE.jar,spring-context-3.0.7.RELEASE.jar,spring-core-3.0.7....
org.apache.cxf.spring.remoting.Jsr181HandlerMapping.jar
SSM+cxf+log4j整合框架;springmvc+spring+mybatis整合开发,内部集成webservice技术,采用cxf框架进行实现,log4j进行日志记录
cxf+spring+hibernate集成整合jar包
12.CXF与Spring整合为JavaEE应用发布WebService
14.CXF与Spring整合的第二种方式_让JavaEE应用依赖第三方WebService
有CXF接口开发的技术,也有CXF与Spring结合的实现,与数据库访问用到了Hibernate的注解,虽然只有一个添加功能,相信对学习这方面的朋友还是有帮助的。
cxf spring maven 实例 webservice
log4j-1.2.17.jar log4j-api-2.0-rc1.jar log4j-api-2.3.jar log4j-core-2.0-rc1.jar log4j-core-2.3.jar log4jdbc-remix-0.2.7.jar logback-classic-1.0.0.jar logback-core-1.0.0.jar mvel2-2.0.11.jar mybatis-...
CXF+Spring+Hibernate实现WebService,实现的方法比较简单,只有一个增加的方法,没有用到Struts 有服务端代码和客户端测试代码