java.lang.NullPointerException错误处理方法及原因分析
处理空指针异常的七种方法
处理空指针异常的七种方法处理空指针异常(NullPointerException)的方法有很多种,主要取决于异常产生的原因和上下文。
以下是一些常见的处理方式:1.检查并处理可能的空值:这是处理空指针异常的最基本方式。
在访问对象的属性或方法之前,先检查对象是否为null。
如果是null,就进行适当的处理,例如返回一个默认值或者抛出一个更有意义的异常。
例如:String str = getSomeString();int length = (str != null) ? str.length() : 0;2.使用Optional类:Java 8引入了Optional类,可以更好地处理可能为null的情况。
使用Optional可以避免空指针异常,并且使代码更易于理解和维护。
例如:Optional<String> optionalStr = Optional.ofNullable(getSomeString());int length = optionalStr.map(String::length).orElse(0);3.使用异常处理:如果某些情况下空指针异常不可避免,可以使用try-catch语句来捕获并处理它。
在catch块中,可以记录日志、抛出自定义异常或者进行其他处理。
例如:try {// 可能会抛出NullPointerException的代码块} catch (NullPointerException e) {// 处理空指针异常的代码块,例如记录日志、抛出自定义异常等}4.重构代码:如果空指针异常是由于代码结构或者设计问题引起的,那么可能需要重构代码来避免这种异常。
例如,通过使用设计模式、创建更清晰的API或者封装可能为null的对象等方法。
5.利用IDE的帮助:许多集成开发环境(IDE)如IntelliJ IDEA或Eclipse都有强大的代码分析工具,可以帮助识别并预防空指针异常。
Java异常(Exception)处理以及常见异常总结
Java异常(Exception)处理以及常见异常总结⽬录前⾔异常简介异常类型总结前⾔很多事件并⾮总是按照⼈们⾃⼰设计意愿顺利发展的,经常出现这样那样的异常情况。
例如:你计划周末郊游,计划从家⾥出发→到达⽬的→游泳→烧烤→回家。
但天有不测风云,当你准备烧烤时候突然天降⼤⾬,只能终⽌郊游提前回家。
“天降⼤⾬”是⼀种异常情况,你的计划应该考虑到这样的情况,并且应该有处理这种异常的预案。
计算机程序的编写也需要考虑处理这些异常情况。
异常(exception)是在运⾏程序时产⽣的⼀种异常情况,已经成为了衡量⼀门语⾔是否成熟的标准之⼀。
⽬前的主流编程语⾔java也提供了异常处理机制。
异常简介Java中的异常⼜称为例外,是⼀个在程序执⾏期间发⽣的事件,它中断正在执⾏程序的正常指令流。
为了能够及时有效地处理程序中的运⾏错误,必须使⽤异常类,这可以让程序具有极好的容错性且更加健壮。
在 Java 中⼀个异常的产⽣,主要有如下三种原因:1. Java 内部错误发⽣异常,Java 虚拟机产⽣的异常。
2. 编写的程序代码中的错误所产⽣的异常,例如空指针异常、数组越界异常等。
3. 通过 throw 语句⼿动⽣成的异常,⼀般⽤来告知该⽅法的调⽤者⼀些必要信息。
Java 通过⾯向对象的⽅法来处理异常。
在⼀个⽅法的运⾏过程中,如果发⽣了异常,则这个⽅法会产⽣代表该异常的⼀个对象,并把它交给运⾏时的系统,运⾏时系统寻找相应的代码来处理这⼀异常。
我们把⽣成异常对象,并把它提交给运⾏时系统的过程称为拋出(throw)异常。
运⾏时系统在⽅法的调⽤栈中查找,直到找到能够处理该类型异常的对象,这⼀个过程称为捕获(catch)异常。
例 1为了更好地理解什么是异常,下⾯来看⼀段⾮常简单的 Java 程序。
下⾯的⽰例代码实现了允许⽤户输⼊ 1~3 以内的整数,其他情况提⽰输⼊错误。
package io.renren.config;import java.util.Scanner;/*** Created by LiYangYong*/public class TestException {public static void main(String[] args) {System.out.println("请输⼊您的选择:(1~3 之间的整数)");Scanner input = new Scanner(System.in);int num = input.nextInt();switch (num) {case 1:System.out.println("one");break;case 2:System.out.println("two");break;case 3:System.out.println("three");break;default:System.out.println("error");break;}}}正常情况下,⽤户会按照系统的提⽰输⼊ 1~3 之间的数字。
java空指针异常:java.lang.NullPointException
java空指针异常:ng.NullPointException⼀.什么是java空指针异常我们都知道java是没有指针的,这⾥说的"java指针"指的就是java的引⽤,我们不在这⾥讨论叫指针究竟合不合适,⽽只是针对这个异常本⾝进⾏分析。
空指针就是空引⽤,java空指针异常就是引⽤本⾝为空,却调⽤了⽅法,这个时候就会出现空指针异常。
可以理解,成员变量和⽅法是属于对象的(除去静态),在对象中才存在相对应的成员变量和⽅法,然后通过对象去调⽤这些成员变量和⽅法。
对于空指针来说,它不指向任何对象,也就没有所谓的成员变量和⽅法,这个时候⽤它去调⽤某些属性和⽅法,当然会出现空指针异常。
public class Test {private int a=1;private int b=2;public static void main(String[] args) {// TODO Auto-generated method stubTest t1 = new Test();Test t2 = null;System.out.println(t1.a);System.out.println(t2.a);System.out.println(t2.c());}public String c(){return "123";}}我们分析上⾯这段⽰例代码,在Test类中,有两个成员变量a和b,和⼀个⽅法c()。
然后在main()⽅法中,我们创建了两个对象t1和t2,其中t1指向通过构造⽅法实例出的Test对象,⽽t2只是声明,并指向了空,并没有指向实际的对象。
调试的时候,第⼀条输出语句是可以通过编译的,⽽执⾏到第⼆条输出语句的时候,由于空指针调⽤了不属于它的a,程序终⽌,报告空指针异常。
同样,注释第⼆条输出语句,程序在执⾏到第三条输出语句的时候,由于调⽤了不属于它的c()⽅法,会出现⼀样的错误。
新人踩坑的一天——springboot注入mapper时出现java.lang.NullP。。。
新⼈踩坑的⼀天——springboot注⼊mapper时出现ng.NullP。
来公司的第⼆周接到了定时任务的开发需求:每天早上⼗点发送⽤户报表邮件。
校招新⼈菜鸟没做过这玩意有些懵(尴尬)于是决定分步写,从excel导出->邮件发送->定时器实现->mapper层返回集接收,前⼏步都没啥问题,都在service层,可以⽤main⽅法单独测试下,可以发送邮件,但是通过service调⽤mapper时问题就来了——菜鸟踩坑了,抛出ng.NullPointerException,下图是代码:@Component@EnableScheduling@Service("cronTaskService")public class CronTaskServiceImpl implements CronTaskService {@Resourceprivate ExportExcelServiceImpl exportExcelService;@Resourceprivate MailSendServiceImpl mailSendService;private final static Logger log = LoggerFactory.getLogger(CronTaskServiceImpl.class);private static int Count = 0;@Scheduled(cron = "*/10 * * * * ?")@Overridepublic void out(){new ExportExcelServiceImpl().exportExcel("zhoubaobiao1");//String filePath = exportExcelService.exportExcel("周报表" + Count++ + ".xls");//mailSendService.sendEmail(filePath);("-----------success-------\n");}}问了组内的前辈(应该也是没做⼏年),问题解决不了,定位不对。
java的常见问题及解决方法
1."mons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package这是由于struts提供的commons-beanutils.jar和hibernate提供的commons-collections.jar冲突成的,可以从spring提供的lib中找到这个两个jarng.IllegalStateException: No data type for node:org.hibernate.hql.ast.tree.IdentNode用hql 时,忘了给表名加别名,如select p from Position,应该是select p from Position p3.The Server didn 't send back a proper XML response用FCKEditor时原因:解析不了xml文件解决方法:情况一:web.xml的配置是否正确,具体查看《FCKEditor使用指南.pdf》,还有fckeditor自带的几个jar 包情况二:加入serializer.jar,xalan.jar情况三:把项目下的fckeditor包删了,重新加入一遍.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]SWTError:没有更多的处理[未知Mozilla的路径(MOZILLA_FIVE_HOME未设置)]环境:linux下运行swt程序(我出现此问题是,在linux下嵌套浏览器)原因:firefox版本不一致解决:重装一个firefox,并设置相关变量5.Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Could not detect registered XULRunner to use]环境:用XULRunner 在java application中嵌套浏览器原因:没有注册XULRunner解决:window下环境中,在程序中加入,如(第二个参数是下载解压后的存放路径):static{System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "C:\\xulrunner");}6.Exception in thread "main" ng.UnsatisfiedLinkError: noswt-win32-3536 or swt-win32 in swt.library.path, java.library.path or the jar file环境:用DJ Natvie Swing时,在java application中嵌套浏览器,且在windows环境下运行正常,但在linux下却包此异常原因:windows下与linux下使用的swt jar包不一样解决:在windows下用swt-3.5M6-win32-win32-x86.jar,在linux下用swt-3.5.1-gtk-linux-x86.jar7.Exception in thread "main" .ProtocolException:cannot write to a URLConnection if doOutput=false - call setDoOutput(true)环境:用URLConnection送某url发送数据时原因:doOutput=false时,不能发送数据解决:如urlConnection.setDoOutput(true).SocketException: Connection resetat .SocketInputStream.read(SocketInputStream.java:168)at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)at java.io.InputStreamReader.read(InputStreamReader.java:167)at java.io.BufferedReader.fill(BufferedReader.java:136)at java.io.BufferedReader.readLine(BufferedReader.java:299)at java.io.BufferedReader.readLine(BufferedReader.java:362)at com.eagle.service.AutoUpdate.run(AutoUpdate.java:43)环境:j2se socket编程时,服务器端报错原因1:服务器端用BufferedReader,时,没有读到一行解决:客户端用PrintWriter, pw.println(),不能用pw.print(),因为br.readLine()是读一行环境:j2se socket编程时,服务器端/客户端在br.readLine()时报错原因2:服务器端用BufferedReader,br.readLine()时,客户端/服务器已经退出,但是并未通过服务器/客户端,即服务器端/客户端的socket还没有关闭,当用br.readLine()时就会出现这种情况解决:在关闭客户端时要socket.close(),同时还要向服务器发送一条退出的信息,这样让服务器知道某个客户端已经关闭,它就可以终止对此客户端的线程了,反之服务器也是一样.hibernate.PropertyAccessException: Null value was assigned toa property of primitive type setter of er环境:hibernate原因:oolean类型的值为null,boolean类型的值必须是true/false解决:save or update时给boolean类型的值赋true/false10.用占位符查询时出现空指针ng.NullPointerExceptionatorg.hibernate.hql.ast.ParameterTranslationsImpl.getNamedParameterExpectedType(ParameterTranslat ionsImpl.java:63)at org.hibernate.engine.query.HQLQueryPlan.buildParameterMetadata(HQLQueryPlan.java:245)at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:95)at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)at .struts.action.LoginAction.execute(LoginAction.java:72)at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)atorg.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11Ba seProtocol.java:664)at .PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)at .LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)at ng.Thread.run(Thread.java:595)环境:hibernate原因:HQL 不能解析解决:错误写法:String hql = "select m from com.eagle.oa.model.Message m where m.ids like: id";正确写法:String hql = "select m from com.eagle.oa.model.Message m where m.ids like:id";ng.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!原因:在使用hibernate的session.createQuery(.....)时设置参数的下标应该从0开始解决:如:return session.createQuery("from User u where erName = ? and password = ?").setParameter(0, name).setParameter(1, password).uniqueResult();.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.wxj.entities.Group环境:hibernate原因:某个实例的属性一个对象,这个对象没有保存,还是暂态的对象解决:先保存这个对象,或是在另一端加inverse = true13.ORA-01461: can bind a LONG value only for insert into a LONG column环境:oracle原因:jar冲突解决:换成classes12.jar包即可14.ERROR LazyInitializationException:19 - could not initialize proxy - the owning Session was closed环境:SSH原因:当一个类或属性设置了lazy="true",操作对象时,session已经关闭了解决:使用Spring的过滤器openSessionInView.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into MIT/AUTO or remove 'readOnly' marker from transaction definition.环境:SSH原因:这个异常产生的主要原因是DAO采用了Spring容器的事务管理策略,如果操作方法的名称和事务策略中指定的被管理的名称不能够匹配上,spring 就会采取默认的事务管理策略(PROPAGATION_REQUIRED,read only).如果是插入和修改操作,就不被允许的,所以包这个异常解决:修改spring配置文件中相关事务管理部分mon.beans.ProbeException: There is no READABLE property named 'eid' in class 'com.wxj.entity.Student'环境:ibatis原因:在给对象做操作,设置参数时,指定的参数不是对象中有的属性,就会抛出此异常解决:核对对象的属性ng.OutOfMemoryError: PermGen space环境:很多,如ssh整合时原因:不断的更新class,造成应用重启,最终造成代码区的内存空间满了解决:方法很多,1重启,2增加代码区的大小,3少更新class,4有时可能是log4j造成的问题,建议使用common-loggin.jar 5,优化代码以下来自CSDN的jinhuiyu:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息,可以用如下方法解决(根据你的实际情况设置大小),但是这只是临时的解决方法,更重要的是改造你的CODE1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m2,如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat 中加上:set JAVA_OPTS=-Xms64m -Xmx256m位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.3.如果是linux系统Linux 在{tomcat_home}/bin/catalina.sh的前面,加set JAVA_OPTS='-Xms64 -Xmx512'18.在客户端使用dwr时,即跨域访问时,出现“拒绝访问“及“找不到某个属性”的问题(在服务器端调用时却正常)环境:在客户端使用dwr原因:1。
Java中常见错误和异常解决方法(打印)要点
ng.NullPointerException原因是:有空指针,有地址没赋值2.Exception in thread "main" ng.ArithmeticException: / by zero原因是除数是03.ArrayIndexOutOfBoundsException原因是:数组越界ng.NumberFormatException原因是:数字格式化有问题5.Unhandled exception type Exception原因是:没有进行异常处理6.进行国际化操作的时候遇到这样的错误:Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name Message, locale zh_CN答:因为在命令提示符中,是没有错误的解决方法是:在myeclipse中,会出现这个错误java国际化之Can't find bundle for base name1.初步学习最近在学习ResourseBundle时遇到了“Can't find bundle for base name ”这个错误搞了很久才解决了。
原因就是类路径问题要将属性文件放在类路径中!百度里很多都是教程但没有涉及到解决方法!2.中文显示:测试文件java 代码package com.lht.ResourseBundleStudy;import java.util.ResourceBundle;public class ResourseBundleDemo {public static void main(String[] args) {ResourceBundle resource = ResourceBundle.getBundle("test");System.out.print(resource.getString("msg0") + "!");System.out.println(resource.getString("msg1") + "!"); }}test.propertiesmsg0="Hello World"msg1="da jia hao"开始自己测试的时候:将属性文件放在bin/下也试过也不行无赖中就在google中搜索了一下终于在sun的java论坛(/thread.jspa?threadID=660477&messageID=4231534)中找到了线索下面是帖子的内容:I've solved the problem the best way possible. Basically what i've done is added a new class folder named config to the project home dir. Then i added this classfolder to the classpath in project properties. After doing all of this you only need to reference the properties file by "Email".Hope this helps anyone else who is having similiar problems.基本意思就是在src下建立classes(名字无所谓)文件夹将属性文件存放在下面,然后将这个文件夹加入类路径中!运行就可以了:加入类路径的方法:你的工程文件夹->properties->选择Libraries选项卡->Add Class Folder 将刚才建立的文件夹加入就可以了!结果如下:"Hello World"!"da jia hao";!2.中文显示在classes目录下建立message_CH.properties内容如下:ms0="大家好"同样用上面的测试文件!结果如下:"?ó????"!乱码怎么回事啊!在百度里搜索后找到了答案有以为网友写的很清楚:/3885062.html 下面引用如下:原理Property文件中,使用的编码方式根据机器本身的设置可能是GBK或者UTF-8。
java常见异常处理方案
JAVA常见异常1. ng.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。
对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。
数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)2. ng.classnotfoundexception这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。
3. ng.arithmeticexception这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。
4. ng.arrayindexoutofboundsexception这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。
解决Hmily与Feign冲突报错NullPointerException的问题
解决Hmily与Feign冲突报错NullPointerException的问题⽬录Hmily与Feign冲突报错 NullPointerException解决⽅法ng.NullPointerException出现的⼏种原因及解决出现的原因Hmily与Feign冲突报错 NullPointerException在项⽬中使⽤了Hmily保证分布式事务的⼀致性,由于Hmily会注册⼀个 HmilyFeignInterceptor ,并且feign会将其添加到SynchronousMethodHandler 中的 requestInterceptors ,当feign客户端执⾏ HmilyFeignInterceptor 中apply⽅法public void apply(final RequestTemplate requestTemplate) {Transmiter.getInstance().transmit((x$0, xva$1) -> {requestTemplate.header(x$0, new String[]{xva$1});}, HmilyTransactionContextLocal.getInstance().get());}由于获取到的 HmilyTransactionContext 为 null ,所以抛出 NullPointerException 异常。
解决⽅法定义⼀个后置处理器,将没有被 @Hmily 注解的⽅法,移除 HmilyFeignInterceptor 。
package com.jz.shop.cart.service;import mons.utils.text.StringUtils;import feign.InvocationHandlerFactory;import feign.ReflectiveFeign;import feign.RequestInterceptor;import lombok.extern.slf4j.Slf4j;import org.dromara.hmily.annotation.Hmily;import org.dromara.hmily.springcloud.feign.HmilyFeignInterceptor;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;import org.springframework.cloud.openfeign.FeignClient;import org.springframework.core.annotation.AnnotationUtils;import ponent;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RestController;import ng.reflect.Field;import ng.reflect.Method;import java.util.List;import java.util.Map;/*** @author:JZ* @date:2020/6/1*/@Slf4j@Componentpublic class ShopFeignPostProcessor implements BeanPostProcessor {public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {return bean;}public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {// 对所有含有 @FeignClient 的bean进⾏处理if (StringUtils.isNotNull(AnnotationUtils.findAnnotation(bean.getClass(), FeignClient.class))) {// 排除含有 @Controller 和 @RestController 注解的beanif (StringUtils.isNotNull(AnnotationUtils.findAnnotation(bean.getClass(), Controller.class)) ||StringUtils.isNotNull(AnnotationUtils.findAnnotation(bean.getClass(), RestController.class))) {return bean;}try {// 获取代理类中的 FeignInvocationHandlerField h = bean.getClass().getSuperclass().getDeclaredField("h");boolean hAccessible = h.isAccessible();h.setAccessible(true);Object feignInvocationHandler = h.get(bean);/*** 获取 FeignInvocationHandler 中 dispatch 字段的 Map<Method, MethodHandler> dispatch 属性。
java.lang.NullPointerException错误解决办法
JSP网站源码怎么用?ng.NullPointerException处理之完整方案与原因分析!2011-06-04 12:53要的不是错误是什么。
而是原因是。
今天就让兄弟我为广大网站开发初学都来揭开羽月希大塚咲月丘兔不知道你的车跑了多少万公里了!不知道你是不是新手!要是新手的话只能告诉你离合和油门配合不好,需要多练!要是老司机的话可能是你车的问题了!检查一下你的车油泵打不打油?火花塞点火时间配合怎么样!是不是好换火花塞了!是不是好清理气门和喷油嘴了?ng.NullPointerException错误的神秘面纱!史上最全,最深入的分析! 让你看完这篇不用再看下一篇废话不多说。
下面开始全面分析。
(环境:tomcat+sql server+jsp)本质上。
这个错误是数据库连接的错误(当然前提是代码本身没错,因为我们说的是源码!)。
经过我舍友的仔细研究(他是个低调的人,所以就由我帮他写了。
必须达到以下条件(错误原因就是以下六条没配置完):1.JA V A环境配置正确。
2.源码里面的包没有与tomcat的包冲突。
3.把数据库文件给导入到了SQL SERVER(或者其它数据库系统)里面。
并且数据库系统正在运行。
4.添加了数据源。
5.数据库源文件的系统类型匹配(不匹配重新建立数据库,源码里面一般含有数据库的表结构及内容。
),且数据库的连接密码正确。
6.JDBC驱动文件(或者其它)存在且放在tomcat的lib目录下面。
(msbase.jar,mssqlserver.jarmsutil.jar)下面开始说如何配置以上几项。
1。
百度搜索-》JA V A环境变量配置-》百度文库那一条。
按照里面说的配置。
最后测试javac 能否显示信息。
显示成功完成此步。
2。
网站源码-》WEB-INF-》lib里面的.jar包没有和tomcat的lib目录下的包重复。
有的话把源码里面的包删除。
3.SQL SERVER企业管理器。
在数据库上右键-》所有任务-》附加数据库。
java.lang.NullPointerException的可能原因及处理
ng.NullPointerException的可能原因及处理ng.NullPointerException的可能缘故及处理ng.NullPointerException具体意思是空指针异常,最常见的咨询题就是没有初始化。
字符串等数据类型没有初始化类实例(对象)有用具体的类初始化没有推断是否为空Eg:源码:1 public static BookInformation[] ImFromClassification(String a){ 2Connection conn = null; 3PreparedStatement ps = null; 4ResultSet rs = null; 5try{ 6int x = 0; 7conn = LinkMysql.getDBconnection(); 8if(conn == null){System.out.println("conn");} 9String sql="select * from bookinformation where classification=?";10ps = conn.prepareStatement(sql);11ps.setString(1, a);12rs = ps.executeQuery();13rs.beforeFirst();14while(rs.next()){15++x;16}17System.out.println(x);18BookInformation[] a1 = new BookInformation[x];19rs.first();20for(int i = 0; i 1 root cause23 ng.NullPointerException4 Dao.BookInfor.ImFromClassification(BookInfor.java:31)5org.apache.jsp.front.home_jsp._jspService(home_jsp.java:120)6org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)7javax.servlet.http.HttpServlet.service(HttpServlet.java:731)8org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)9org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)10org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)11javax.servlet.http.HttpServlet.service(HttpServlet.java:731)12org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)分析:数组定义(BookInformation[] a1 = new BookInformation[5])之后,没有对每个数组元素初始化。
java常见错误
5个常见错误1、空指针错误 ng.NullPointerException使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便不能通过编译,因此使用基本的JAVA数据类型(double,float, boolean,char,int,long)一般不会引起空指针异常。
由此可见,空指针异常主要跟与对象的操作相关。
下面先列出了可能发生空指针异常的几种情况及相应解决方案:不管对象是否为空就直接开始使用。
(JSP)代码段1:out.println(request.getParameter("username"));描述:代码段1的功能十分简单,就是输出用户输入的表域"username"的值。
说明:看上去,上面的语句找不出什么语法错误,而且在大多数情况下也遇不到什么问题。
但是,如果某个用户在输入数据时并没有提供表单域"username"的值,或通过某种途径绕过表单直接输入时,此时request.getParameter("username")的值为空(不是空字符串,是空对象null。
),out对象的println方法是无法直接对空对象操作,因此代码段1所在的JSP页面将会抛出"ng.NullPo interException"异常。
即使对象可能为空时,也调用ng.Object或Object对象本身的一些方法如toString(), equals(Object obj)等操作。
(JSP)代码段2:String userName = request.getParameter("username");If (userName.equals("root")){....}描述:代码段2的功能是检测用户提供的用户名,如果是用户名称为"root"的用户时,就执行一些特别的操作。
详解Java中NullPointerException异常的原因详解以及解决方法
详解Java中NullPointerException异常的原因详解以及解决⽅法NullPointerException是当您尝试使⽤指向内存中空位置的引⽤(null)时发⽣的异常,就好像它引⽤了⼀个对象⼀样。
当我们声明引⽤变量(即对象)时,实际上是在创建指向对象的指针。
考虑以下代码,您可以在其中声明基本类型的整型变量x:int x;x = 10;在此⽰例中,变量x是⼀个整型变量,Java将为您初始化为0。
当您在第⼆⾏中将其分配给10时,值10将被写⼊x指向的内存中。
但是,当您尝试声明引⽤类型时会发⽣不同的事情。
请使⽤以下代码:Integer num;num = new Integer(10);第⼀⾏声明了⼀个名为的变量num,但它不包含原始值。
相反,它包含⼀个指针(因为类型Integer是⼀个引⽤类型)。
既然你还没有说什么指向Java,它将它设置为null,意思是“ 我什么都没有指向”。
在第⼆⾏中,new关键字⽤于实例化(或创建)Integer类型的对象,并为指针变量num分配此对象。
您现在可以使⽤解引⽤运算符.(点)来引⽤对象。
在当你声明了⼀个变量,但是没有创建⼀个对象,会发⽣Exception。
如果您在创建num对象之前尝试取消引⽤,则会得到⼀个NullPointerException。
在最琐碎的情况下,编译器将捕获问题并让您知道“num可能尚未初始化”,但有时您编写的代码不会直接创建对象。
例如,您可能使⽤了如下的⽅法:public void doSomething(SomeObject obj) {//do something to obj}在这种情况下,您没有创建对象obj,⽽是假设它是在doSomething调⽤⽅法之前创建的。
如果你像这样调⽤⽅法:doSomething(null);在这种情况下obj为null。
如果该⽅法旨在对传⼊的对象执⾏某些操作,则需要抛出异常,因为NullPointerException它是程序错误,程序员将需要该信息⽤于调试的⽬的。
org.codehaus.xfire.fault.XFireFault Fault java.lang.NullPointerException
org.codehaus.xfire.fault.XFireFault Faultng.NullPointerException错误信息:Exception in thread "main"org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Fault:ng.NullPointerExceptionorg.codehaus.xfire.fault.XFireFa ult: Fault: ng.NullPointerException atorg.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soa p11FaultSerializer.java:31) atorg.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapF aultSerializer.java:28) atorg.codehaus.xfire.soap.handler.ReadHeadersHandler.checkFor Fault(ReadHeadersHandler.java:111) atorg.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(Re adHeadersHandler.java:67) atorg.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipel ine.java:131) atorg.codehaus.xfire.client.Client.onReceive(Client.java:406) at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(Htt pChannel.java:139) atorg.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel .java:48) atorg.codehaus.xfire.handler.OutMessageSender.invoke(OutMessa geSender.java:26) atorg.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipel ine.java:131) atorg.codehaus.xfire.client.Invocation.invoke(Invocation.java:79) atorg.codehaus.xfire.client.Invocation.invoke(Invocation.java:114) at org.codehaus.xfire.client.Client.invoke(Client.java:336) at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy .java:77) atorg.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:5 7) at $Proxy12.queryData(Unknown Source) attest.Test.main(Test.java:43)原因:参数不正确,仔细对比SOAP UI与用工具生成的客户端发送到服务端的参数的差别。
java.lang.NullPointerException出现的几种原因及解决方案
ng.NullPointerException出现的⼏种原因及解决⽅案ng.NullPointerException出现的⼏种原因:1、字符串变量未初始化2、接⼝类型的对象没有⽤具体的类初始化,⽐如:Map map // 会报错Map map = new Map(); //则不会报错了3、当⼀个对象的值为空时,你没有判断为空的情况。
4、字符串与⽂字的⽐较,⽂字可以是⼀个字符串或Enum的元素,如下会出现异常String str = null;if(str.equals(“Test”)){//这⾥的代码将不会被触发,因为会抛出ng.NullPointerException异常。
}5、优先使⽤String.valueOf()⽅法代替toString()当程序代码需要对象的字符串表⽰形式时,请避免使⽤该对象的toString⽅法。
如果你的对象的引⽤等于null,NullPointerException则会抛出,使⽤静态String.valueOf⽅法,该⽅法不会抛出任何异常并打印"null"6、class被声明了类型,默认 class = null; 这样在调⽤class中⽅法的时候系统只能给你个空指针异常,给其实例化就好了:class = new Class();7、返回null,⽅法的返回值不要定义成为⼀般的类型,⽽是⽤数组。
这样如果想要返回null的时候就能避免许多不必要的NullPointerException总之,NullPointerException由RuntimeException派⽣出来,是⼀个运⾏时异常。
其意指可能会在运⾏的时候才会被抛出,⼀个变量是null,及只有其名,没有实值内容,也没分配内存,当你要去取他的长度,对他进⾏操作就会出现NullPointException,所以声明变量时最好给它分配好内存空间,给予赋值,例如拿该变量与⼀个值⽐较时,要么先做好该异常的处理要么给它进⾏判断先:if (str !=null && str “”){ …}判断⼀个String的实例s是否等于“a”时,不要写成s.equals(“a”),这样容易抛NullPointerException,⽽写成"a".equals(s)就可以避免这个问题,不过对变量先进⾏判空后再进⾏操作更好,尽量避免返回null,⽅法的返回值不要定义成为⼀般的类型,⽤数组。
java.lang.NullPointerException异常问题解决方案
ng.NullPointerException异常问题解决⽅案ng.NullPointerException异常原因是因为创建了⼀个引⽤类型的变量却没有指向任何对象⽽⼜去通过这个引⽤类型变量加点的形式去访问⾮静态的⽅法及属性。
给出三种情况,第⼀种情况,在启动类中定义了引⽤类型变量,赋值为空:/*** 引⽤类型变量没有指向对象所引起的空指针异常* @author Superhero* @version 2018年12⽉16⽇上午10:32:43*///图书类class Books{private String name;private String author;private double price;public Books(){}public Books(String name, String author, double price){ = name;this.author = author;this.price = price;}public String getName(){return name;}public String getAuthor(){return author;}public double getPrice(){return price;}}//启动类public class NullPointerExceptionTest1{public static void main(String[] args){Books book=null;//下⾯⼀⾏代码会报指针异常错误:System.out.println("name:"+book.getName()+", author:"+book.getAuthor()+", price:"+book.getPrice());}}第⼆种情况:创建了⼀个引⽤类型的数组,却没有给数组元素指向对象⽽调⽤了。
见过最多次的错误:java.lang.NullPointerException
见过最多次的错误:ng.NullPointerException 代码:@Autowiredprivate UserMapper userMapper;@Autowired // 忘记添加private RoleMapper roleMapper;@Overridepublic Map<String, Object> selectUserByCondition(Map<String, Object> condition) {Map<String, Object> returnUser = userMapper.selectUserByCondition(condition);if (condition.get("user_pwd")==null) {return returnUser;}// 先⽤MD5对密码进⾏加密,再做⽐较String md5 = Md5Utils.md5((String)condition.get("user_pwd"));if(returnUser!=null && md5.equals(returnUser.get("user_pwd"))) {return returnUser;}return null;}@Overridepublic int changePasswordById(Map<String, Object> user) {int i = userMapper.changePasswordById(user);if (i > 0) {return i;}return 0;}public PageUtils selectByConditionToPage(Map<String, Object>condition, int index) {// 1.通过条件查询记录数int count = userMapper.selectCountByCondition(condition);// 每页的记录数int size = Global.PAGE_SIZE;LOGGER.debug(count);PageUtils pageUtils = null;if (count > 0) {pageUtils = new PageUtils(index, size, count);// 2.通过条件查询数据// 注意:开始位置 = 索引*每页记录数index = index*size;List<Map<String,Object>> page = userMapper.selectByConditionToPage(condition, index, size);// 将⾓⾊的数据也加⼊到集合⾥⾯for (Map<String, Object> user : page) {// 第⼀步:通过 user 中的 role_idObject role_id = user.get("role_id");Map<String, Object> role = new HashMap<String, Object>();role.put("role_id", role_id);// 第⼆步:通过 role_id 获得⾓⾊信息role = roleMapper.selectRoleByCondition(role); // 报错点// 第三步:将⾓⾊的字段拼接到 user ⾥⾯// 使⽤拼接在同⼀层的⽅式,不同表的字段名是不可以重复的user.put("role", role);LOGGER.debug("管理员拼接后的字段:"+role);}pageUtils.setPage(page);}return pageUtils;}错误详情:ng.NullPointerExceptionat erServiceImpl.selectByConditionToPage(UserServiceImpl.java:72)at erController.toUserList(UserController.java:129)at erController$$FastClassBySpringCGLIB$$25cf3127.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)at erController$$EnhancerBySpringCGLIB$$5f531980.toUserList(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at ng.reflect.Method.invoke(Method.java:498)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)at .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)at .SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at ng.Thread.run(Thread.java:748)怎么样去解决错误:第⼀:先看控制台,报错的原因,看到空指针异常,有点蒙,不知去哪找错了,并且报错的地⽅好像有点没对象。
nullpointerexception怎么解决
nullpointerexception怎么解决NullPointerException 是Java 中的一个常见异常,通常发生在试图访问或修改一个空对象的属性或方法时。
要解决 NullPointerException,你可以采取以下几种方法:检查空指针异常的来源:首先,你需要确定哪个对象是空的,以及在哪个代码行上抛出了异常。
使用调试器或打印语句可以帮助你定位问题。
添加非空检查:在访问对象的属性或方法之前,确保对象不是 null。
例如:java复制代码if (object != null) {object.someMethod();}初始化对象:确保在尝试访问其属性或方法之前,对象已经被正确初始化。
使用Optional 类:从Java 8 开始,你可以使用 Optional 类来避免空指针异常。
例如:java复制代码Optional<String> optional =Optional.ofNullable(someString);optional.ifPresent(System.out::println);1.使用try-catch 块:虽然这不是最佳实践,但在某些情况下,你可以使用try-catch 块来捕获和处理空指针异常。
但请注意,这并不是一个长期解决方案,而是一种短期的应急措施。
2.重构代码:有时候,空指针异常可能是由于代码设计问题导致的。
在这种情况下,你可能需要重构代码以更好地管理对象和避免空指针异常。
3.使用静态分析工具:有些工具(如SonarQube)可以帮助你检测代码中的空指针异常风险。
4.查阅文档和社区:如果你正在使用的第三方库或框架抛出空指针异常,查阅相关文档或社区讨论可能会提供解决方案或工作区。
5.单元测试:确保你的代码经过充分的单元测试,这可以帮助你发现和修复空指针异常。
6.使用IDE的帮助:大多数现代IDE(如IntelliJ IDEA 或Eclipse)都有内置的代码检查工具,可以帮助你识别可能的空指针异常。
java.lang.NullPointerException的可能原因及处理
ng.NullPointerException的可能原因及处理ng.NullPointerException的可能原因及处理ng.NullPointerException具体意思是空指针异常,最常见的问题就是没有初始化。
1. 字符串等数据类型没有初始化2. 类实例(对象)有⽤具体的类初始化3. 没有判断是否为空Eg:源码:1public static BookInformation[] ImFromClassification(String a){2 Connection conn = null;3 PreparedStatement ps = null;4 ResultSet rs = null;5try{6int x = 0;7 conn = LinkMysql.getDBconnection();8if(conn == null){System.out.println("conn");}9 String sql="select * from bookinformation where classification=?";10 ps = conn.prepareStatement(sql);11 ps.setString(1, a);12 rs = ps.executeQuery();13 rs.beforeFirst();14while(rs.next()){15 ++x;16 }17 System.out.println(x);18 BookInformation[] a1 = new BookInformation[x];19 rs.first();20for(int i = 0; i < x; i++){21//a1[i] = new BookInformation();22 a1[i].setName(rs.getString("name"));23 a1[i].setAuthor(rs.getString("author"));24 a1[i].setClassification(rs.getString("classification"));25 a1[i].setAmount(rs.getInt("amount"));26 a1[i].setPrice(rs.getInt("price"));27 a1[i].setSalvesVolum(rs.getInt("sales_volum"));28 rs.next();29 }30return a1;3132 } catch (SQLException e) {33 System.out.println("xxx");34return null;35 }36finally{LinkMysql.closeDB(conn, ps, rs);}3738 }报错:root causeng.NullPointerExceptionDao.BookInfor.ImFromClassification(BookInfor.java:31)org.apache.jsp.front.home_jsp._jspService(home_jsp.java:120)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:731)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)javax.servlet.http.HttpServlet.service(HttpServlet.java:731)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)分析:数组定义(BookInformation[] a1 = new BookInformation[5])之后,没有对每个数组元素初始化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.把数据库文件给导入到了SQL SERVER(或者其它数据库系统)里面。并且数据库系统正在运 行。 4.添加了数据源。 5.数据库源文件的系统类型匹配(不匹配重新建立数据库,源码里面一般含有数据库的表结构及内 容。),且数据库的连接密码正确。 6.JDBC驱动文件(或者其它)存在且放在tomcat的lib目录下面。 (msbase.jar,mssqlserver.jarmsutil.jar)
4.win+R->odbcad32-》回车-》添加-》选择SQL SERVER ->数据源名称应用数据库文件的名称。服 务器一般是 (local)->使用用户登录-》 填入sa +密码-》更改默认数据库为添加的-》下一步-》完成-》确定。
5.数据库系统类型是否匹配可在网站源码-》src-》...-》toolsbean-》DB.java(这里指数据库 连接的源码文件)找到这样一句 private final String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_Blog";这里就可以看到数据库 是SQL SERVER 以及连接用户名密码。private final String userName = "sa";private final String password = "sa";将其修改为你的。 但是我们这里只是修改的源码。这还不够。把改好的DB.java放到C盘根目录。启动cmd cd \ 命令 切换到C根目录。 用javac DB.java生成一个DB.class。把这个文件复制到WEB-INF->classes->....->toolsbean下 面替换原来的DB.class
下面开始说如何配置以上几项。
1.JAVA环境变量配置-》/java/j_55283.html。按照里面说的配置。最后测 试javac能否显示信息。显示成功完成此步。
2.网站源码-》WEB-INF-》lib里面的.jar包没有和tomcat的lib目录下的包重复。有的话把源码里
ng.NullPointerException错误处理方法及原因分析 _pc6资讯 ng.NullPointerException错误处理方法及原因分析 新闻 学院 软件 硬件 网络 报道 综合 IT人物 .Net ASP 办公 Word JSP PHP Excel SQL XML Wps Powerpoint 数据库 最近更新 | 软件分类 | 论坛转帖 | QQ下载 | 杀毒软件 系统 XP 非主流 Vista 黑客 Win2003 学上网 win7 菜鸟必读 win2008 QQ Linux 股票 谷歌 影视
没有查询到任何记录。
本类资讯排行
资讯总排行
MyEclipse的注册以及汉化方法图解
ng.NullPointerException处理之完整方案与 原因分析! ng.NullPointerException错误的神秘面纱!史 上最全,最深入的分析! 让你看完这篇不用再看下一篇 废话不多说。下面开始全面分析。(环 境:tomcat+sql server+jsp) 本质上。这个错误是数据库连接的错误(当然前提是 代码本身没错,因为我们说的是源码!)。 经过我舍友的仔细研究(他是个低调的人,所以就由
阅读本文后您有什么感想? 已有 380 人给出评价!
1
184
138
12
42
囧
恶心
期待
难过
相关阅读 java学习:VisualAge使用技巧04-10-07 Java一点通:中文识别问题全解决办法04-10-07 我学习使用java的一点体会(八)04-10-07 我学习使用java的一点体会(七)04-10-07 Java学习:HSQLDB文档(一)04-10-07 Java开发精彩教程:JSF系列(三)04-10-07 我学习使用java的一点体会(三)04-10-07 JAVA开发精彩教程:JSF系列(二)04-10-07
Photoshop
CorelDraw
3DMAX
免费资源
女性
首页 → 技术开发 → java教程 → ng.NullPointerException错误处理方法及原因分析
ception错误处理方法及原 因分析
2012-5-14 1:52:00 来源: 作者:xy 2217 我要评论(0)
六条没配置完): 1.JAVA环境配置正确。 2.源码里面的包没有与tomcat的包冲突。
我帮他写了。必须达到以下条件(错误原因就是以下
热门软件教程
ng.NullPointerException错误处理方 java环境变量配置方法 SQL 2000/2005/2008 的收缩日志方法,和清理 要复制的lob 数据的长度(77639) 超出了配置 sql 2000升级到sql 2005后访问速度变慢图文 安装sql 2005时visual studio just-in-time SQL是什么意思?如何打开? sql server停止和重启命令 Flex与Java通信教程 iis设置让iis支持flv格式_2003 iis添加flv
/java/j_55284.html[2013/6/17 14:39:43]
ng.NullPointerException错误处理方法及原因分析 _pc6资讯
面的包删除。
3.SQL SERVER企业管理器。在数据库上右键-》所有任务-》附加数据库。把源码里面的数据 库.mdf文件选上。所有都选SA (一般是这样选择,选其它的话。连接数据库的时候得把用户名密码写对。)。确定。
6.把源码LIB下面的msbase.jar,mssqlserver.jarmsutil.jar(JDBC驱动)剪切到tomcat的LIB目 录下面。复制会存在包冲突。 OK。完了。怎么还不能还是没用?嘿嘿。最后还得把SQL SERVER 2000升级到SP4版本哦。这个就 不知道是什么原因了。反正这步是相当之关键。前面全部配置正确。如果没升级也还是连接不上 数据库。 这下可以测试了:http://localhost:8080/源码目录 是不是终于把主页显示出来了?
一个简单Java发邮件源代码 java中String类主要方法的使用 使用PHP集成Google Spreadsheets 数据 myeclipse中英文互换工具使用方法教程 jQuery和JavaScript 库的性能对比 Java编程复习笔记 SQL注入,数据类型 java中创建并初始化字符串方法 Flex与Java通信教程 使用GDB调试RB-tree的问题总汇
|
友情连接
|
网站地图
Copyright ? 2004-2012 PC6下载().All Rights Reserved 备案编号:湘ICP备10204221号
/java/j_55284.html[2013/6/17 14:39:43]
最新评论
热门评论
共有评论(0)条 查看全部评论
PC6网友
/java/j_55284.html[2013/6/17 14:39:43]
ng.NullPointerException错误处理方法及原因分析 _pc6资讯
关于本站
|
网站帮助
|
广告合作
|
下载声明