tomcat问题

wula0010 2010-08-11 07:43:27
本机环境:win xp,Tomcat6.0.18,jdk1.6,netbeans开发,一切正常,
服务器环境:win2003,Tomcat6.0.18,jdk1.6,发布程序后总是报编码问题,
两边的tomcat配置完全一样,程序页面都是utf-8,报编码错误的,都是在处理文件的时候,比如上传文件,或对文件读写操作,数据库的数据没有问题,请教如何解决?
...全文
318 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wula0010 2010-08-13
  • 打赏
  • 举报
回复
问题解决了,总结下:
由于采用的是netbeans,调试运行的时候,netbeans自动启动tomcat,调用的配置文件是:
C:\Documents and Settings\windows_loginusername\.netbeans\6.5\apache-tomcat-6.0.18_base\conf下的配置文件,
这个可以在netbeans-服务-服务器-tomcat6.0.18-属性,连接-catalina基目录中看到,这里的server.xml配置和tomcat安装目录下的不同:
netbeans的配置:<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8084" protocol="HTTP/1.1" redirectPort="8443"/>
tomcat安装的配置:<Connector connectionTimeout="20000" port="8084" protocol="HTTP/1.1" redirectPort="8443"/>

修改tomcat安装路径下的配置后就ok了。

另外发现个问题,上传处理文件,测试时候没有任何问题,但是发布后就报错,原来我在处理文件的时候取了文件的扩展名:
fileExtName = sourceFileName.substring(sourceFileName.lastIndexOf("."));
测试的时候:sourceFileName=G:\CBS\myprogram\build\web\upload\uploadtmp\***.extname;
这样带扩展名和不带扩展名的文件处理都没问题,但是发布后,由于tomcat的安装目录是:
C:\Program Files\Tomcat6.0.18;
则:sourceFileName = C:\Program Files\Tomcat6.0.18\webapps\myprogram\build\web\upload\uploadtmp\***.extname;
有扩展名的文件处理没有问题,没有扩展名的文件则成:
fileExtName = 18\webapps\myprogram\build\web\upload\uploadtmp\***;
就会报错了,文件找不到。

所以尽管测试通过了,并不代表程序没有问题,要充分考虑测试环境和实际发布环境的差别!!!

colin_pxx 2010-08-12
  • 打赏
  • 举报
回复
上传或下载时都使用UTF-8编码
closewbq 2010-08-12
  • 打赏
  • 举报
回复
可能是由于命名引起的,程序中不要使用中文。
DAVE_LUO 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 licip 的回复:]
中文空格的路径,这些都是有可能的原因。
[/Quote]
很让人郁闷
cheng20100915 2010-08-12
  • 打赏
  • 举报
回复
估计是上传时路径成乱码了导致最终的错误
landyshouguo 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 apollo_ts 的回复:]

InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8");

文件IO操作和操作系统 默认编码有关,一般配置的都是gbk,你要指定utf-8编码才行。
[/Quote]顶!!!
licip 2010-08-12
  • 打赏
  • 举报
回复
中文空格的路径,这些都是有可能的原因。
lostmymain 2010-08-12
  • 打赏
  • 举报
回复
学习学习
kokobox 2010-08-12
  • 打赏
  • 举报
回复
那是你的程序问题了

在上传文件处理的时候编码转换一下
APOLLO_TS 2010-08-12
  • 打赏
  • 举报
回复
InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8");

文件IO操作和操作系统 默认编码有关,一般配置的都是gbk,你要指定utf-8编码才行。
tuo_bing 2010-08-12
  • 打赏
  • 举报
回复
有没有可能是文件名 或路径之类的 。。。

象用 js 传递参数的时候,所有编码统一,也会有乱码出现,一样要进行转化 。。。
andlyLiu2013 2010-08-12
  • 打赏
  • 举报
回复
<Connector port="9998" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8'/>


这里面要改改看
zhouliubin 2010-08-12
  • 打赏
  • 举报
回复
最好是在服务器上装个开发环境跟踪一下代码,才知道哪里出的错,现在说什么都有可能错的
wcl_friend 2010-08-12
  • 打赏
  • 举报
回复
Tomcat里面也要设置编码方式的,server.xml:
<Connector port="9998" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8'/>
建议楼主试一下。
wangyi123 2010-08-12
  • 打赏
  • 举报
回复
学习下
ai593423625 2010-08-12
  • 打赏
  • 举报
回复
哥只是来看看、
tivy2009 2010-08-12
  • 打赏
  • 举报
回复
Tomcat/bin/catalina.bat中开始部分(大概51行处)添加set CATALINA_OPTS=-Dfile.encoding=UTF-8
或CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"
syh1573 2010-08-11
  • 打赏
  • 举报
回复
1.如果只上传文件图片这方面出错的话,那是因为上传路径乱码问题,上传Path不要含中文和空格。一般tomcat安装在默认路径program files下都可能出错,因为中间有个空格。解决方法是对上传路径进行编码处理String path=URlDecoder.decoder(路径.getPath(),"UTF-8");
2.注意文件和数据同时上传与单独上传的不同方法
simaa0106 2010-08-11
  • 打赏
  • 举报
回复
很诡异呀!

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧