java web 开发问题总结 1 原创-胡志广_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java web 开发问题总结 1 原创-胡志广

java web 开发问题总结 1 原创-胡志广

 2013/9/22 15:26:31  saiyaren  程序员俱乐部  我要评论(0)
  • 摘要:1.Linuxssh多机配置无法连接的问题解决方法折腾了半天操作步骤一直没有问题,但是就是用ssh连接另一台机器时还是需要输入密码后来上网查找了一下,该问题是由于$home路径的权限必须是700,而我当前的目录的权限是775,所以就遇到了问题,这问题太囧了,细节决定成败啊。下面是解决方法:chmod700/home/nutch这是我要进行连接ssh用户的根目录(nutch)2.linux下不重启使/etc/profile环境变量生效source/etc/profile(全局的)source~/
  • 标签:总结 原创 Web Java 问题 开发

1.??????Linux ssh?多机配置无法连接的问题解决方法

class="MsoNormal" style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14.44444465637207px; line-height: 23.33333396911621px;">折腾了半天操作步骤一直没有问题,但是就是用ssh连接另一台机器时还是需要输入密码

后来上网查找了一下,该问题是由于$home路径的权限必须是700,而我当前的目录的权限是775,所以就遇到了问题,这问题太囧了,细节决定成败啊。

?

下面是解决方法:

chmod??700 /home/nutch

这是我要进行连接ssh用户的根目录(nutch)

?

2.??????linux下不重启使/etc/profile环境变量生效

source /etc/profile??(全局)

source ~/.bash_profile?(个人的)

?

?

3.??????vmware nat service?自动停止解决方法

右键->我的电脑->服务->

Vmware nat service?的“自动”改为“手动”,并启动服务,启动后,状态就是上面图显示的已启动,手动

?

4.????linux?关机命令

1)shutdown –help?

  可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。?

  2?shutdown -h now?现在立即关机?

  3shutdown -r now?现在立即重启?

  4shutdown -r +3?三分钟后重启?

  5shutdown -h +3 “The System will shutdown after 3 minutes”?提示使用者将在三分钟后关机?

  6shutdown -r 20:23?2023时将重启计算机?

  7shutdown -r 20:23 &?可以将在2023时重启的任务放到后台去,用户可以继续操作终端?

?

5.??????linux su?切换用户错误解决办法

su?切换用户时,报出如下错误:当前用户不可用

This account is currently not available

?

解决办法:

root用户执行下列命令:

viw /etc/passwd

?

打开后,看到如下内容:

rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin

named:x:25:25:Named:/var/named:/sbin/nologin

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

?

后面的内容都是/sbin/nologin

?

我们需要把/sbin/nologin修改为“/bin/bash”就可以了

?

如:apache:x:48:48:Apache:/var/www:/bin/bash

?

?

6.??????mod_jk版本错误导致apache?启动失败解决方法

重启apache

如果出现:
启动?httpdSyntax error on line 2 of /usr/local/apache2/conf/mod_jk.conf:
Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: invalid ELF header
则说明mod_jk.so的版本错误.

?

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries下载指定的mod_jk,注意版本:

选择你的操作系统类型,我的是linux,进入后:

因为我的是apache2.2.3所以,我进入了jk-1.2.31

进入后,选择你操作系统的类型,我的服务器版本是64位的所以选择x86_64

然后我的apache版本是2.2.3的所有就选择红框内的

?

7.??????tomcat6?jar not loaded误解决方法

当启动tomcat6时,如果报了如下错误:

validateJarFile(/usr/file/tomcat6/webapps/eclass/WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

是由于eclass项目中lib下的servlet-api.jartomcat?lib下的servlet-api.jar包冲突了,所以报了如上错误,解决方法是把webapps下的项目中的lib下的servlet-api.jar包删除掉就可以了

?

?

?

8.??????Oracle 11无法连接dba

当通过oracle?用户?执行命令时:

Sqlplus ‘/as sysdba’

然后报了如下错误:

ERROR:

ORA-12705: Cannot access NLS data files or invalid environment specified

?

查找一下环境变量中是否有

NLS_LANG="AMERICAN_AMERICA.UTF-8"?
export NLS_LANG

这样的内容,然后删掉

删掉后

执行

Source /etc/profile

source ~/.bash_profile

才可以生效

?

9.??????ORA-0195错误解决

ORA-01950:?对表空间zy无权限;
?
ORA-01950
错误分析
用户没有resource权限。

添加用户的resouce?角色即可

?

10.?ORA-00942:?表或视图不存在?hibernate?解决方法

当你用hibernate执行查询方法时,如果报了如下错误:

?

ORA-00942:?表或视图不存在

?

是因为hbm文件里面的配置出现了问题

?

?<class name="com.jdodrc.pt.vo.TPtUserWeiboShare" table="T_PT_USER_WEIBO_SHARE" schema="SAA">

?

schema="SAA"只要删除这个就可以了,这个是指定的是表空间,由于数据库迁移了,所以表空间不对了,所以就会出现错误了

所以删除掉这句就好了schema="SAA"

?

11.?配置oracle的权限

?配置一般的oracle用户,配置

CONNECT

RESOURCE

2个角色

CREATE SESSION

这个系统权限

然后配置一些对象权限

?

12.?动态执行表不可访问,本会话的自动统计被禁止"错误解决

?

最近做统计报表的时候使用PL/SQL,但是每次第一次打开表的时候会提示"动态执行表不可访问,本会话的自动统计被禁止"的错误,一消息如下: V$SESSION,V$SESSTAT,V$STATNAME没有被授权,没有权限访问这几张表,所以没有办法进行统计.当然要给授权了.授权SQL如下:?

sys登陆后,执行下列语句
grant select on v_$statname to user;
?
grant select on v_$sesstat to user;
?
grant select on v_$session to user;
?
grant select on v_$mystat to user;
?

?

user就是要被授权的用户名.记下以备后用.

?

?

13.?FCKeditor:上传图片The server didn 't send back a proper XML response

下载xalan-j_2_7_0-bin-2jars.zip这个包

然后将serializer.jar???xalan.jar2个文件copy到应用的lib

?

?

14.?FCKeditor fileupload Error on file upload.Error number:203分析解决

发现了个问题,这个编辑器的上传功能和webwork的某个过滤器会发生冲突,在web.xml中加载webwork的过滤器后编辑器的上传功能就不能用了,我试了下,删除webworkfileupload过滤器情况依旧,删除webwork的全部过滤器就没问题了,不知道和哪个过滤器发生冲突了,还因为它不能直接上传其他类型的文件,后来就干脆不用它的文件上传功能了,提供了一个统一的文件上传功能

?

如果你和我一样使用的struts2进行项目开发的话,你会发现当上传文件时会出现?“Error on file upload. Error number:203”的错误提示。这是因为fckstruts2框架不兼容,struts2转发了fckservlet?
解决办法:在web.xml中修改struts2filter-mapping

Java代码

<filter-mapping>?
????? <filter-name>struts2</filter-name>?
??????<url-pattern>/*</url-pattern>?
</filter-mapping>?
修改成?
<filter-mapping>????
?????? <filter-name>struts2</filter-name>????
???????<url-pattern>*.action</url-pattern>????
?????? <url-pattern>*.jsp</url-pattern>????
</filter-mapping>?
如果还有其他url映射也可以添加到filter-mapping中去。

说明:webwork框架中出现此类问题同理。

?

15.?Oracle使用clob字段

在配置文件中加入红色标注的行

<prop key="hibernate.connection.SetBigStringTryClob">true</prop>

?

sessionFactorybean中加入该内容

?

然后再vo.hbm.xml中的clob字段将type定义为text类型

?

????????<property?name="edmContent"?type="text">

????????????<column?name="EDM_CONTENT"?/>

????????</property>

?

然后再po中,将clob的字段定义为String?类型就可以了

?

?

16.?codec包解决方法

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException

?

出现如上错误如下进行解决:

网络编程HttpClient?要一个包commons-codec-1.x.jar

?

你可以从这个地址http://commons.apache.org/downloads/download_codec.cgi?下载到最新的?common codec

?

?

17.?Httpclicent post乱码解决方法

HttpClient httpClient = new HttpClient();

???????httpClient.getParams().setParameter(

??????????HttpMethodParams.HTTP_CONTENT_CHARSET,?"UTF-8");

?

18.?使用servlet filter后多次加载一个url的解决方法

当你加载上过滤器后,你查看是否会出现一个页面同时加载了多次;

这样的现象很头大,有时候不容易发现,但是这是由什么引起的呢?

?

查看一下你的filter中的这句话

filterChain.doFilter(request, response);

是否出现了多次(执行了多次)

如果执行多次则会出现上面的问题,那么将这个做判断,一次拦截中只出现一次即可。

当调用2filterChain.doFilter(request, response);该方法后,将会出现如下错误

java.lang.IllegalStateException

?

还是和上面的解决方法一样。

?

?

19.?JDK AES加密,linux下无法解密的解决方法

现象描述:

windows上加解密正常,linux上加密正常,解密时发生如下异常

?

javax.crypto.BadPaddingException:?Given final block not properly padded

? ? ? ?at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
? ? ? ?at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
? ? ? ?at com.sun.crypto.provider.AESCipher.engineDoFinal(DashoA13*..)
? ? ? ?at javax.crypto.Cipher.doFinal(DashoA13*..)
? ? ? ?at chb.test.crypto.AESUtils.crypt(AESUtils.java:386)
? ? ? ?at chb.test.crypto.AESUtils.AesDecrypt(AESUtils.java:254)
? ? ? ?at chb.test.crypto.AESUtils.main(AESUtils.java:40)?

解决方法:

经过检查之后,定位在生成KEY的方法上,如下:

KeyGenerator kgen = KeyGenerator.getInstance("AES");????????????????????//AES加密,创建密钥生成器,定义它的算法?

kgen.init(128,?new SecureRandom(password.getBytes()));???//使用已创建的随机源初始化密钥生成器

?

?

修改到如下方式,问题解决:

KeyGenerator kgen = KeyGenerator.getInstance("AES");????????????????????//AES加密,创建密钥生成器,定义它的算法

SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG" );?

secureRandom.setSeed(password.getBytes());?

kgen.init(128,secureRandom);???//使用已创建的随机源初始化密钥生成器

红色加粗处是修改后的内容

原因分析

?

SecureRandom?实现完全隨操作系统本身的內部狀態,除非調用方在調用?getInstance?方法之後又調用了?setSeed?方法;该实现在?windows?上每次生成的?key?都相同,但是在?solaris?或部分?linux?系统上则不同。

?

?

20.?通过request获取完整的uri(带参数)

String uri=hsr.getRequestURI();

//获取完整路径+参数

String query=hsr.getQueryString();

if(query!=null){

???????uri+="?"+query;

}

?

获取到完整的uri(但是没有参数)

String uri=hsr.getRequestURI();

获取到请求的完整的参数

String query=hsr.getQueryString();

如果参数不为空,则将uri连接上参数形成完整的uri地址

if(query!=null){

???????uri+="?"+query;

}

?

?

?

21.?Linuxdir无法使用解决方法

当执行dir时,报了如下错误:

-bash: /usr/bin/dir: /lib/ld-linux.so.2: bad ELF interpreter:

?

因为我移动文件时移动错了,将根目录下的lib移动到其他位置了

然后再将lib移动回根目录即可

?

注:

移动lib时一定要注意前面的是否是/lib(根目录),否则出现问题后很郁闷的

?

?

?

22.?启动apache?报错

D:\Program Files (x86)\Apache2.2\bin>httpd.exe

httpd.exe: Could not reliably determine the server's fully qualified domain name

, using 192.168.0.127 for ServerName

(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。??: make_sock: cou

ld not bind to address 0.0.0.0:80

no listening sockets available, shutting down

Unable to open logs

?

报上面错误是由于80端口冲突,所以修改apache端口就好了

?

?

23.?apache出现You don't have permission to access / on this server.?提示

打开浏览器后提示403

You don't have permission to access / on this server.

解决方法:

httpd.conf的内容:

<Directory?/>
????Options FollowSymLinks
??? AllowOverride None
??? Order deny,allow
??? Deny from all?
</Directory>

修改为

<Directory?/>
????Options?Indexes?FollowSymLinks
????AllowOverride?None
</Directory>

?

?

?

24.?Apache?禁止index of/

httpd.conf中找到如下内容:

<Directory />

????Options??Indexes??FollowSymLinks

????AllowOverride None

</Directory>

?

将上面的Indexes删除即可

<Directory />

????Options??FollowSymLinks

????AllowOverride None

</Directory>

?

?

25.?Filterout.printjs跳转不管用的解决方法

filter中将未登陆的按照如下方式跳转:

//?未登录,跳转到登录页

?????????????????

??????????????????PrintWriter out = response.getWriter();

??????????????????out.print("<script>window.top.location.href='"

?????????????????????????+ hsr.getContextPath() +?"/front/login.jsp';</script>");

?

但是当执行filter跳转时出现了问题,跳转到页面时,没有达到预期的效果,出现下面的状况:

url已被拦截,但是却没有达到预期效果跳到指定页面;

那么我们同firefox?debug?一下它的content-type

这里不是text/html

因为我们在执行输出时没有设定content-type

所以我们将过滤器输出的前面修改一下:

加上一行:

response.setContentType("text/html;charset=UTF-8");

?

下面是完整代码:

//?未登录,跳转到登录页

??????????????????response.setContentType("text/html;charset=UTF-8");

??????????????????PrintWriter out = response.getWriter();

??????????????????out.print("<script>window.top.location.href='"

?????????????????????????+ hsr.getContextPath() +?"/front/login.jsp';</script>");

设置好后,然后再试验后,可以进行成功跳转了

所以在进行write.print时一定要注意设置content-type这里一定要注意,否则有时候找这样的问题郁闷死

?

26.?Tomcat?性能优化

加大tomcat连接数:

tomcat配置文件server.xml中的配置中,和连接数相关的参数有:
minProcessors
:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors
:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount
:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups
:是否反查域名,取值为:truefalse。为了提高处理能力,应设置为false
connectionTimeout
:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

其中和最大连接数相关的参数为maxProcessorsacceptCount。如果要加大并发连接数,应同时加大这两个参数。

web server
允许的最大连接数还受制于操作系统的内核参数设置,通常Windows2000个左右,Linux1000个左右。

?

27.?java.net.SocketException: Too many open files解决方法

linuxtomcat?部署后,下载文件一段时间后总是报如下错误:

java.net.SocketException: Too many open files

windows下是没有问题的,linux对进程的打开文件数是有限制的。

?

?

用命令ulimit -a查看

[root@test security]# ulimit -a?
core file size??????? (blocks, -c) 0?
data seg size???????? (kbytes, -d) unlimited?
file size???????????? (blocks, -f) unlimited?
max locked memory???? (kbytes, -l) unlimited?
max memory size?????? (kbytes, -m) unlimited?
open?files??????????????????? (-n) 1024?
pipe size????????? (512 bytes, -p) 8?
stack size??????????? (kbytes, -s) 8192?
cpu time???????????? (seconds, -t) unlimited?
max user processes??????????? (-u) 7168?
virtual memory??????? (kbytes, -v) unlimited?
[root@test security]#?
通过以上命令,我们可以看到open?files?的最大数为1024

?

对于并发量比较大的网站这个限制是有些捉襟见肘的,所以我通过这个命令

?

ulimit -n 4096?
把打开文件数的上限设为了4096,这下好了,项目又稳定了

但是重新登陆后,用ulimit -n 4096?设置的值貌似会变回去,所以需要永久设置open?files??的值才行啊

?

所以换下面的方式试试:

?

ulimit -n?修改open files?总是不能保持。所以用下面一个简单的办法更好些。

修改/etc/security/limits.conf?添加如下一行:

* - nofile 1006154

修改/etc/pam.d/login添加如下一行

session required /lib/security/pam_limits.so

?

还有更重要的就是在对于io进行操作时,需要注意对于流的关闭

?

?

28.?Spring?定时器执行2次解决方法(tomcat)

当执行spring?定时器时,在tomcat中执行了2

什么问题呢?

因为在server.xml中:

?

??????<Host name="localhost"??appBase="webapps"

????????????unpackWARs="true" autoDeploy="true"

????????????xmlValidation="false" xmlNamespaceAware="false">

????????????????????????????<Context path="" docBase="/usr/file/tomcat6/webapps/point" debug="0" reloadable="true" crossContext="true"/>

?

这里appbase=”webapps”,然后下面有配置了

<Context path="" docBase="/usr/file/tomcat6/webapps/point" debug="0" reloadable="true" crossContext="true"/>

由于pointwebapps下,所以就执行了2

解决方法如下

appbase=””设置为空就可以了

?

?

29.?将字符串格式日期转为date

将字符串格式为:Wed Sep 14 14:39:57 CST 2011转为date?方式如下:

java.util.Date da=new java.util.Date("Wed Sep 14 14:39:57 CST 2011 ");

?

?

30.?hibernate?手动设置生成方式

hibernate?通过注入id的方式手动设置主键方式

.hbm.xml配置文件中

????????<id?name="id"?type="java.lang.String">

????????????<column?name="ID"??/>

????????????<generator?class="assigned"?/>

????????</id>

将主键的方式设置为assigned就可以了

??<generator?class="assigned"?/>

?

31.?Svn启动方法

?svn?用户进入到svn的目录的bin

[svnuser@jdodrc bin]$ sh csvn

Usage: csvn { console | start | stop | restart | condrestart | status | install | remove | dump }

执行csvn后,有这么多命令可以执行

那么我们执行一个startconsole就可以了

Start是启动svn服务

[svnuser@jdodrc bin]$ sh csvn start

Console是启动csvn的控制台

[svnuser@jdodrc bin]$ sh csvn console

?

?

32.?Outlook 2007服务器保留副本

工具——账户——邮件,选择你要保留的那个邮件地址,点属性——高级,在最下边有一项在服务器上保留邮件副本,在前面点上勾,点击确定就行了。

?

?

?

?

33.?Java?查看当前文件位置

File directory = new File("");//设定为当前文件夹
try{

??? System.out.println(directory.getCanonicalPath());//获取标准的路径
??? System.out.println(
directory.getAbsolutePath());//获取绝对路径
}catch(Exceptin e){}

?

?

?

34.?Java?对象复制

?

String a[]={"1","2"};

???????String b[]={};

???????a[0]="3";

???????b=a;

???????a[0]="4";

???????String?c[]=a;

???????System.out.println(b);

?????System.out.println(c);

????

这里更改内容后,最后输出的结果为:

[Ljava.lang.String;@de6ced

[Ljava.lang.String;@de6ced

可以看出b,c?是一样的对象,

?

下面我们在b=a.clone();这样进行对象复制后试一下

???????String?a[]={"1","2"};

???????String b[]={};

???????a[0]="3";

???????b=a.clone();

???????a[0]="4";

???????String?c[]=a.clone();

???????System.out.println(b);

?????System.out.println(c);

输出结果为:

[Ljava.lang.String;@de6ced

[Ljava.lang.String;@c17164

可以看出b,c2个不同的对象

然后看一下输出更新的内容:

???????System.out.println(b[0]);

?????System.out.println(c[0]);

是:

3

4

?

也进行更新了,所以对于对象的复制用

对象.clone()

?

35.?读取txt内容

?

monospace; line-height: 1.5; font-size: 10pt;">?????????private?void?read(FileInputStream fs)?throws?IOException{

????????StringBuffer sb =?new?StringBuffer();?

????????BufferedReader br =new?BufferedReader(new?InputStreamReader(fs));

????????String s=null;

????????while((s=br.readLine()) !=?null)?

????????????????????????????????????{?

????????????????????????????????????????sb.append(s);?

????????????????????????????????????}?

?????????????????????????????System.out.println(sb.toString());

?????????????}

?

?

36.?Eclipse?调整字体大小

General-->Appearance-->Colors and Fonts-->Basic-->Text Font

?

?

37.?Mysql?高效sql分页

下面是关于mysql中如何写出更高效的分页SQL的具体例子及简单的对比分析,推荐使用下文所提到的“优化写法”!

1、优化写法:?(先根据过滤条件取出主键id进行排序,再进行join操作取出其他相关字段)

select??t.id, t.thread_id, t.group_id, t.deleted, t.author_id,t.author_nick, t.author_ip,

t.content, t.last_modified, t.gmt_create, t.gmt_modified, t.floor, t.reply, t.reply_time from

(select id from group_thread_reply_0029 where thread_id = 771025 and deleted = 0 order by gmt_create asc limit 0, 15) a,group_thread_reply_0029 t where a.id = t.id;

?

?

38.?myEclipse更新web项目名称后,部署名与项目名称不一样解决方法

更新WEB项目名称后,部署到TOMCAT上名称与项目名称不一样,解决方法如下:

右键项目->properties

然后打开下图,修改红框位置的名称与项目名称一致后,再部署到tomcat,项目名称和部署后的项目名称就一致了

?

39.?An internal error occurred during “Generating Artifacts”解决方法

当通过myEclipse反向生成VO时,myEclipse报了如下错误:

解决方法如下:

打开项目的目录,然后打开.project文件

找到如下内容:

<natures>

??????????????<nature>com.genuitec.eclipse.hibernate.hibernatenature</nature>

??????????????<nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>

??????????????<nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>

??????????????<nature>org.eclipse.jdt.core.javanature</nature>

???????</natures>

???????然后删掉

???????<nature>com.genuitec.eclipse.hibernate.hibernatenature</nature>

???????这句话,保存.project文件,然后刷新myEclipse的项目

?

40.?Vmware?安装ghost xp无法安装解决方法

在虚拟机中安装ghost?版的xp时会安装不上,是因为虚拟机中的磁盘没有进行分区,所以需要先进行分区才可以进行安装。

???????

然后点击add hibernate capabilities添加hibernate支持,添加完hibernate支持后再进行反向工程则没有问题。

?

?

41.?ftp主动模式

?

leapftp主动模式

选择图片内红框的形式就可以

?

?

42.?Linux?修改默认路径

vi /etc/passwd

类似:

guest:x:502:502::/ftp/guest:/bin/bash

?

43.?IE浏览器兼容性问题解决

在页面中,由于IE89,但是默认都不是兼容模式,在你的页面中加入下列语句,将内容兼容到IE7模式,那么浏览器则默认兼容模式为IE7

<META content="IE=7.0000" http-equiv="X-UA-Compatible"/>

?

?

?

44.?获取媒体文件播放时间等信息

String filePath = request.getParameter("filePath");

??????????????//String webRoot = request.getSession().getServletContext().getRealPath("/");

??????????????File file = new File(filePath);

??????????????//取铃声名称,不包含扩展名

??????????????String name = file.getName().substring(0, file.getName().length()-4);

??????????????AudioFileFormat af = AudioSystem.getAudioFileFormat(file);

??????????????//获取mp3码率

??????????????int bitRate = (Integer)af.properties().get("mp3.bitrate.nominal.bps");

??????????????bitRate = bitRate / 1000;

??????????????//获取播放时间

??????????????Long duration = (Long)af.properties().get("duration");

??????????????duration = duration / 1000000;

??????????????//获取文件大小

??????????????Integer bytes = (Integer) af.properties().get("mp3.length.bytes");

??????????????Double fileSize = bytes /(1024.0*1024.0);

??????????????DecimalFormat df = new DecimalFormat("#.00");

??????????????fileSize = Double.parseDouble(df.format(fileSize));

?

?

?

45.?不匹配某个单词正则表达式

^((?!^baidu$).)*$

比如上面是不为baidu的则全部为真

?

46.?匹配不是某个网址(如baidu

^((?!^http://([a-z0-9]*\.)*baidu\.com$).)*$

比如匹配http://baidu.com(除了baidu都可以)

?

?

?

47.?Eclipse @override?报错解决

eclipse中报错@override,解决方法是

Properties-->java Compiler-->Compiler Compliance Level?调整为6.0ok

下面标红框位置即是:

?

?

myEclipse9.0

?

48.?JCONSOLE测试工具连接失败本地进程解决方法

?

-Djava.rmi.server.hostname=192.168.1.80
-Dcom.sun.management.jmxremote.port=8089
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

?

JAVA的执行参数中配置上如上内容即可

-Djava.rmi.server.hostname?这个是机器IP

-Dcom.sun.management.jmxremote.port?jconsole的端口

-Dcom.sun.management.jmxremote.ssl是否需要SSL连接

-Dcom.sun.management.jmxremote.authenticate是否密码链接

?

如果需要监测TOMCAT,需要在catalina.sh或者catalina.bat加上如上参数,上面的端口是监测端口,所以在监测时输入IP和端口即可监测(端口是上面配置的端口)

49.?Eclipse?自动提示功能(.不起作用)解决方法

Eclipse中的?Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced
里的「Select the proposal kinds contained in the 'default' content assist list」把「Other Java Proposals」选择打勾后,应用就可以解决这个问题了。

?

?

?

?

?

?

?

50.?Alt+/?不管是eclipse解决方法

1Eclipse下进入Windows ->Preperences ->General ->keys
2
、把word completion快捷键设置alt+/删掉!

3、把Content Assist的快捷键由ctrl+space改成alt+/

?

51.?could not create the java virtual machine?eclipse启动时报错,解决方法

当启动myeclipse时,报了如下错误:

could not create the java virtual machine

?

myEclipse下的eclipse目录下找到eclipse.ini文件打开

然后将如下2个值相应改小即可;

-XX:PermSize=64M

-XX:MaxPermSize=128M

?

?

?

52.?java.sql.SQLException: Parameter index out of range (0 < 1 ).错误解决方法

当用JDBC操作数据库时,报了如下错误:

java.sql.SQLException: Parameter index out of range (0 < 1 ).

是因为索引越界了

JDBC这块的索引是从1开始,不是0,所以需要注意

PreparedStatement ps = conn.prepareStatement(sql);

???????????ps.setString(1,?"xxxxx");

???????????ps.setString(2,?"2012-03-31");

?

?

53.?mysql timestamp格式保存方法

时间类型保存直接用

????ps.setString(2,?"2012-03-31");

string?方式保存即可

?

?

54.?JDBC级联插入

JDBC A表进行插入后,

通过select LAST_INSERT_ID()

SQL语句获取到刚刚插入的ID,然后再插入到B表等,如果中间抛出了异常的话,那么回滚即可

?

55.?Eclipse无法进行hibernate逆向生成解决方法

在进行hibernate逆向生成映像文件时,报如下错误时:

An internal error occurred during: "Generating Artifacts".

com/mysql/jdbc/DatabaseMetaData$5

因为我们在添加hibernate支持时,在我们的项目下有了2hibernate包,所以才有了版本不同,所以需要去除一种就可以了。

?

?

56.?Mysql?日期格式化

?

DATE_FORMAT(g.createTime,'%Y-%m-%d')

?

?

57.?Spring?报如下错误解决方法:

除去properites文件路径错误、拼写错误外,出现"Could not resolve placeholder"很有可能是使用了多个PropertyPlaceholderConfigurer或者多个<context:property-placeholder>的原因。

?

比如在spring?配置文件中配置了如下2properties

????<context:property-placeholder?location="classpath:jdbc.properties"?/>

????<context:property-placeholder?location="classpath:config.properties"?/>

?

那么肯定会报上面的错。

Spring 3.0解决方法:

content标签内加入:ignore-unresolvable="true"即可,举例如下:

?

<context:property-placeholder?location="classpath:jdbc.properties"?ignore-unresolvable="true"?/>

????<context:property-placeholder?location="classpath:config.properties"?ignore-unresolvable="true"?/>

?

这样就没有问题了,那么我们为什么要引入这些properties呢,因为这样我们可以配置参数等信息,如JDBC参数配置:

<property name="driverClass"?value="${jdbc.driverClassName}"?/>

?

58.?启动tomcat?无法启动解决方法

当启动tomcat报如下错误时:

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

At least one of these environment variable is needed to run this program

?

当报如上错误时,在

Tomcat?bin目录下catalina.batwindows)或catalina.sh(linux)中添加上

JAVA_HOMEJRE_HOME 2个环境变量

如果是windows?set ,如果是linuxexport

例如:

Set JRE_HOME

Set JAVA_HOME

Export JAVA_HOME

Export JRE_HOME

?

59.?Putty Vi?乱码解决方法

选择UTF-8

然后再这里输入地址保存即可

?

修改为UTF-8 VI?可解决乱码,但是提示却是乱码,所以这里需要设置为2种即可。

?

60.?Vi?跳转到指定行

:12

则跳转到12

?

61.?Vi?显示行号

set nu

62.?Vi?去掉高亮

设置了高亮搜索(:set hlsearch)以后,可以通过?:set nohlsearch?永久地关闭高亮

显示,也可以通过?:nohlsearch?暂时关闭高亮显示,下次搜索时将自动恢复高亮。

?

63.?An error occurred at line: 23 in the generated java file解决方法

?

当启动tomcat后,执行JSP,报了如下错误:

?org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 23 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

?

那么是包冲突所致,我这里面是jsp-api.jarjsp-api 2.0.jar冲突,删除项目中的jsp-api 2.0.jar即可解决问题。

?

64.?Eclipse?增加alt+/?提示

Window->preferences->keys

查找到alt+/?word completion?将它改为其他的快捷键

然后查找content Assist?,然后将它的快捷键改为alt+/即可进行提示

  • 大小: 17.2 KB
  • 大小: 48 KB
  • 大小: 24.3 KB
  • 大小: 16.8 KB
  • 大小: 47.5 KB
  • 大小: 5.8 KB
  • 大小: 5.9 KB
  • 大小: 47.6 KB
  • 大小: 28.7 KB
  • 大小: 11.7 KB
  • 大小: 82.9 KB
  • 大小: 26.4 KB
  • 大小: 115.8 KB
  • 大小: 1.9 KB
  • 大小: 24.5 KB
  • 大小: 72.2 KB
  • 大小: 46.9 KB
  • 大小: 13.1 KB
  • 大小: 95.5 KB
  • 大小: 53.1 KB
  • 大小: 40 KB
  • 查看图片附件
发表评论
用户名: 匿名