您的位置:首页 > 运维架构 > Tomcat

WEB 开发疑难杂证收集:简单但让你头疼的问题

2013-11-12 17:08 561 查看
1.启动Tomcat时报找不到类的错误,但明明在lib下是存在的:

如:java.lang.ClassNotFoundException: freemarker.template.TemplateException
在Build Path中也加入了Libraries中,而且也特意在OS目录中Copy该jar到WEB-INF/lib中
那是因为可能你是直接在OS文件系统中Copy过去的,需要到eclipse的Project Explorer中Refresh(F5); 这样在Project Explorer 中可看到该JAR文件(原来看不到)
不过如果是在Project Explorer 贴上去的就不会有此问题了。


2. Eclipse 频繁崩溃,信息如下

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fda65fff030, pid=2510, tid=140577627227904
#
# JRE version: 7.0_21-b11
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.21-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libwebkitgtk-1.0.so.0+0x1012030]  StoreStr+0x16680
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

解决办法,在eclipse.ini最后加上:
-Dorg.eclipse.swt.browser.DefaultType=mozilla


3.编译通过,但在运行时报Class not find

原因:jar不在lib下

4.启动Tomcat报Class not find。

原因:jar不在lib下

強制關閉tomcat ps aux | grep "tomcat" kill -9 pid

5.启动TOMCAT ERROR

运行命令:catalina.bat jpda run 出现以下错误:

an\apache-tomcat-7.0.42\bin\tomcat-juli.jar"
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../.
./../src/share/back/debugInit.c:741]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_E
RROR_TRANSPORT_INIT(197)

//调整catalina.bat or catalina.sh
set JPDA_ADDRESS=8089

保存后重新运行命令OK。

6 href="#"防跳动问题

方法一:<a href="###" onclick="gettext()">点击</a>

方法二:<a href="javascript::" onclick="gettext()">点击</a>

方法三:<a href="javascript:void(0);" onclick="gettext()">点击</a>

7 告别递归

Oracle:
SELECT *FROM SC_DISTRICT
START WITH NAME='巴中市'CONNECT BY PRIOR ID=PARENT_ID

其他DB当然也有解决方案;

8.PostgreSql for win Connection Exception:

参考:http://www.oschina.net/question/928739_152536

9.css():多个分号;

1.$(this).css({top:msg_top+'px',left:msg_left +'px'})
VS
2.$(this).css({top:msg_top+'px;',left:msg_left +'px;'})
哪个是正确的,那个是错误的
答案:1是正确的,第2个分号(;)是不需要的,隐蔽性很强,看了100遍也不怀疑;

10.eclipse build后执行LESS编译

project》properties》Builders》New》Program 选中准备好的bat文件

11.ubuntu:执行脚本出现/bin/sh^M: bad interpreter: No such file or directory

原因是在存在特殊字符---^M,可能是编辑环境引起:
解决方法:用vi命令
:%s/^m//g
或
:set ff?
:set ff=unix
:wq


12: servlet输出中文乱码

请注意以下两句话的顺序:

1.response.setContentType("application/json; charset=UTF-8");
2.PrintWriter out = response.getWriter();

当然是第1句需在第2句前面,不然有你好看。

13:跨servlet存取cookie,setPath是关键

package dax.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SavecookieAction {

public void save_cookie(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {

Cookie ck1 = new Cookie("name","GOODLUCKY");
ck1.setMaxAge(60*60*24*10);
//ck1.setPath("/");
response.addCookie(ck1);
PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");
out.write("<html><head></head><body><p>");
out.write("Save cookie Success!!!!!!");
out.write("<p></body></html>");

}
}

package dax.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetcookieAction {

public void get_cookie(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {

PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");
out.println("<html><head></head><body><p> Get cookies:");

Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
out.println("cookie " + cookies[i].getName() + " = "
+ cookies[i].getValue());
}
}else{
out.println("cookies is null!!!!!!!!!!!!!!");
}
out.println("<p></body></html>");
out.flush();
out.close();

}
}

14:使用Druid应注意DataSource不能建立多次,而是多次getConnection

// DataSource要先Cache起来,不然没有连接池的效果
dataSource = (DruidDataSource) DB_CACHE.get(s_dbName);
if (dataSource == null) {
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(map);
...
DB_CACHE.put(s_dbName, dataSource);
...
}
conn = dataSource.getConnection();

15.Ubuntu下双击开启批处理文件

将编写好的,可以运行的sh文件改名为非.sh名称(如.command,主要是未来避免影响过大),并赋予期可执行权限:
chmod +x *.command

安装dconf-editor:
1、首先使用sudo apt-get install dconf-editor命令安装dconf-editor,默认是没有安装的;
2.安装完成后直接运行dconf-editor命令呼出窗口,按org->gnome->nautilus->preferences路径找到executable-text-activation设置选项,
默认键值为display,即默认文本编辑器,改为ask

ubuntu 启动管理:
1.安装:sudo apt-get install sysv-rc-conf
2.使用:sudo sysv-rc-conf

16.adb.exe启动失败:其端口5037被其他程序所占

5037为adb默认端口 查看该端口情况如下:
netstat -aon|findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6540
发现6540占用了 5037端口,继续查看6540的task,发现是wandoujia .如下所示
tasklist|findstr "6540"
wandoujia_daemon.exe 6540 Console 1 4,276 K
接下来问题就好解决了,在任务管理器kill掉wandoujia_daemon.exe ,运行android程序,ok .

1.关闭豌豆荚进程
2.adb kill-server
3.adb start-server
4.重启Eclipse
OK

17.Linux kill process

ps -ef | grep firefox
kill -s 9 0000

18.jquery找上级级(不限几级)元素

$('#id').closest('div.col-1').css('width');

19.MySql字段别名问题

加上?号后面的设定值即可:
"url":"jdbc:mysql://localhost:3306/test?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior"

?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior

20.Debug模式不能正常取得Ajax传入的参数

21.生成可执行jar文件

//manifest.mf放在执行jar命令相同目录
jar cvfm SecurityRule.jar MANIFEST.MF -C ../bin .
java -jar SecurityRule.jar

//在manifest.mf中设定引入外部资源库
Class-Path: druid-1.0.1.jar fastjson-1.1.38.jar mail.jar ojdbc6.jar slf4j-api-1.6.6.jar ehcache-2.7.5.jar log4j-1.2.17.jar mysql-connector-java-5.1.26-bin.jar Rabbit.jar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息