J2EE 主要异常记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/webwalker/article/details/34455881

J2EE WebApp的开发、测试,主要环境如下:

MySql 5.7
Tomcat 8.0.5
Nginx 1.7.3
JDK 1.8
MyEclipse 2014
Maven  3.2.1
Spring+MVC 4.0.5
MyBatis 3.2.7
JUnit 4.11
Apache Lucene 4.9.0
apache-cxf-3.0.1
JQuery EasyUI 1.3.6
Hibernate Validator 1.1.0

 

主要异常:

1、Could not load driverClass ${jdbc.driverClassName}java.lang.ClassNotFoundException: ${jdbc.driverClassName}

org.mybatis.spring.mapper.MapperScannerConfigurer时,执行数据库查询报错:

Could not load driverClass ${jdbc.driverClassName}java.lang.ClassNotFoundException: ${jdbc.driverClassName}

查下来发现,是jdbc.properties文件没有被加载,因此按以下诸多的讨论方法进行变更,不济于事,花费不少时间:
http://www.oschina.net/question/188964_32305
http://blog.csdn.net/lklinkang/article/details/8309929
http://www.iflym.com/index.php/code/201211010001.html

最后通过删除<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">中的
<!-- <property name="sqlSessionFactory" ref="sqlSessionFactory" /> -->解决

2、Spring MVC注解@ResponseBody返回有乱码

      首先,在Web.xml中配置编码过滤器无效

<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>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>


      看了网上诸多的方案,没有一个可以真正解决问题的,最后的请求处理如下:

<!-- @ResponseBody乱码 设置成UTF-8 JSON -->
	<bean
		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
		<property name="messageConverters">
			<list>
				<bean
					class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
				<bean
					class="org.springframework.http.converter.StringHttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>text/plain;charset=UTF-8</value>
						</list>
					</property>
				</bean>
				<bean
					class="org.springframework.http.converter.ResourceHttpMessageConverter" />
				<bean
					class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
				<bean
					class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
				<bean
					class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" />
			</list>
		</property>
	</bean>


       而非配置:org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter、defaultAnnotationHandlerMapping等


3、找不到类not found class
    project 右键,  deployment assembly -> java build path entries -> Maven Dependencies .
    这样才能在发布时,将maven的jar包一起放到服务器中.
4、org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/FrameworkCore]]
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
      解决方法:修改servlet的classpath:spring-mvc.xml和<url-pattern>/*</url-pattern>
5、It is incompatibile with already installed facets: Java 1.5. Please modify project
     解决: 
http://hi.baidu.com/tonidfrank/item/40756cd216813896270ae72a
6、java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext
     因为tomcat的lib目录存在相同的jar名称了,保留tomcat中的,删除自己应用,如:el-api.jar等重复package的包
     如果冲突较多,可以将tomcat建立库,引用进来,然后删除MAVEN依赖的JAR包
   <groupId>javax.el</groupId>
   <artifactId>javax.el-api</artifactId>
   <groupId>javax.servlet.jsp</groupId>
   <artifactId>javax.servlet.jsp-api</artifactId>
7、Mapped Statements collection does not contain value for后面是什么类什么方法之类的:
错误原因有几种:
1)mapper.xml中没有加入namespace
2)mapper.xml中的方法和接口mapper的方法不对应
3)mapper.xml没有加入到mybatis-config.xml中(即总的配置文件),例外:配置了mapper文件的包路径的除外
4)mapper.xml文件名和所写的mapper名称不相同。
6)  mysql连接串中,&符号修改为&amp;否则报权限拒绝异常


8、java.util.zip.ZipException: invalid LOC header (bad signature) 无明确提示哪个JAR包有问题
     删除tomcat cata缓存,clean、update project后出现明确提示错误,删除maven本地仓库对应的JAR包,重新运行TOMCAT
9、Build path is incomplete. Cannot find class file for bms.core.common.SpringContextUtil
    ​  clean update delete...


阅读更多

J2EE平台的主要优点

04-13

J2EE 平台提供了以下特征: rnrn完整的 Web 服务支持。J2EE 提供了一个框架,以便在 Java 平台上开发和部署 Web 服务。Java API for XML-based RPC (JAX-RPC) 使得 Java 技术开发人员能够开发基于 SOAP的、能够互操作并且可移植的 Web 服务。开发人员可以使用标准的 JAX-RPC 编程模型来开发基于 SOAP 的 Web 服务客户端和端点。Web服务端点是使用Web服务描述语言(WSDL)文档来描述的。JAX-RPC使得JAX-RPC客户端能够调用跨异构平台上开发的 Web 服务。同样,JAX-RPC Web 服务端点可以由异构客户端调用。有关进一步信息,请参阅 http://java.sun.com/webservices/。 rnrn更加快速的解决方案面市时间。 J2EE 平台使用“容器”来简化开发。J2EE 容器提供了业务逻辑与资源和生命周期管理的分离,这表明开发人员可以将重点放在编写业务逻辑(它们的增值)上,而不是放在企业基础结构上。例如,Enterprise JavaBeans (EJB)容器(由 J2EE 供应商实现)处理了分布式通信、线程处理、缩放、事务管理等。与此类似,Java Servlets 简化了 Web 开发,因为它在 Web 容器中提供了针对组件、通信和会话管理的基础结构,而该容器又与 Web 服务器集成。 rnrn自由的选择。J2EE 是一组许多供应商都可以实现的标准。供应商可以自由地完成实现,但在标准或 API 上却不能自由完成。Sun 为 J2EE 持证人提供了综合的 J2EE Compatibility Test Suite(CTS)。J2EE CTS有助于在应用程序供应商之间保证兼容性,从而保证了针对 J2EE 平台编写的应用程序和组件的可移植性。J2EE 平台为服务器带来了“Write Once, Run Anywhere”(编写一次,随处运行)的能力。 rnrn简化的连接。 J2EE 技术使得可以容易地连接已经拥有的应用程序和系统,并将这些能力带到了 Web、手机和设备。J2EE 提供了 Java Message Service,以便以采用松耦合、异步的方式来集成不同的应用程序。J2EE 也提供了 CORBA 支持,以便通过远程方法调用来紧密地链接系统。J2EE 平台还具有 J2EE Connectors,用于链接企业信息系统,比如 ERP 系统、打包的财务应用程序和 CRM 应用程序。 rnrn通过提供具有如下特征的平台:更加快速的解决方案面市时间、自由的选择和简化的连接,J2EE 平台可帮助 IT 缩减 TCO ,同时免去了针对企业软件要求的单一源码。 rn

没有更多推荐了,返回首页