自己开发过程中遇到的问题及解决办法

时间:2020-12-29 15:27:58

1. myeclipse+hibernate+junit 在进行测试时出现invalid project specified对话框

原因:你的工程可能是复制过来的。而你改名字时前面的一个空格没去掉。

2.用hibernate的schemaExport来生成表格及显示建表语句时,为什么建表语句还是在一行显示 

原因:在hibernate的配置文件中没有配置fromat_sql属性应该这样配置:<property name=”format_sql”>true</property>,

      它的意思是格式化输出sql语句。

3.JSP中出现org.apache.jasper.JasperException: Unable to compile class for JSP 这样的错误

解决方法:要检查MyEclipse中Java选项中的JDK是否和Tomcat中的JDK是否一样,如果一样,就要检查书写的jsp是否有错。

在写JSP时,通过File-Import- Existing Projects into Workspace 导入了一个外部工程到当前的工作空间,导入后工程前面却出 

现了红叉,用Project-clean 等等方法都无法消除,看Problem提示这样的错误:

意思是说有没有绑定的classpath参数,最后通过一系列的努力终于明白了错误之处。

原因:右键工程查看properties:

发现这里有三个jar文件,正式problem中提到得那几个。既然是存在于Libraries中很明显

这几个jar文件时通过外部导入了,但是我们知道MyEclipse中不必导入Tomcat中的一些包,

它通过这样的设置自动找到要求的包:

由此我们就可以知道,导入的这个外部项目没有通过MyEclipse来自动连接Tomcat而是手动连接,也就是手动导入需要的包,在设置classpath来连接。

解决方法:既然我们是把它导入到了MyEclipse中,而已经在MyEclipse中配置了Tomcat,所以就没必要用到上面的那三个包了,只要删掉他们就行了,删掉以后红叉没有了。

5. tomcat5下jsp出现getOutputStream() has already been called for this response异常

    原因: 由于jsp container在处理完成请求后会调用releasePageContet方法释放所用的PageContext object,并且同时调用getWriter方法,由于getWriter方法与在jsp页面中使用流相关的getOutputStream方法冲突,所以会造成这种异常。

解决办法:只需要在jsp页面的最后加上两条语句:  

out.clear();

out=pageContext.pushBody();

6.今天在MyEclipse下导入一个外部工程,然后用Tomcat部署时报错了,具体错误如下:

原因:这里是由于jdk的版本问题,使得出这样的错误,应该确保下面的三个的jdk版本是一样的:

tomcat版本
jdk版本
框架的jar版本

解决办法:设置JDK Compliance

          设置Tomcat path

          确保框架的jar版本与上面的一致

7.今天在用hibernate自动生成表的时候出现了这样的错误 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax 

再控制台里建表语句已经打印出来了,但是数据库中的表确没有生成。

我的实体类的属性是这样的:

private int itemId;

private String type;

private String itemName;

private int price;

private String describe(无效字段);

private String detail;

private Boolean hasPicture;

奇怪的是我换了一个实体类,再重新测试,表可以正常生成,这时候我就有点怀疑是不是实体类的问题了,经过一系列的提问,终于弄明白了原来是我表中的字段describe与mysql中显示表结构的命令describe冲突,所以就有了上面的错误。

这时候我们可以这样做,把建表语句放到MySql控制台中去试试,看是什么样的错误。