2008年8月12日
1.安装Firebug Lite
具体安装方法查看Firebug Lite的主页
http://getfirebug.com/lite.html
2.添加一段javascript到页面中
if (!window.console || !console.firebug)
{
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {}
}
或直接下载firebugx.js
http://getfirebug.com/firebug/firebugx.js
[Exception... "Component returned failure code: 0x805e000a
[nsIXMLHttpRequest.open]" nsresult: "0x805e000a (<unknown>)"
location: "JS frame :: http://localhost:8080/scripts/jquery.js ::
anonymous :: line 2699" data: no]
Exception提示是jquery获取不到结果.但浏览器直接访问地址可以得到结果
最终发现问题出现在firefox插件adblock上
因为我的servlet写成"/advertiser/page"
adblock把结果给过滤
因此jquery获取不到给出Component returned failure code: 0x805e000a
解决办法
把advertiser改名成vertiser,这样即使用户使用firefox和adblock也可以访问
当使用Eclipse3.4-Ganymede内置的SVN尝试检出项目时出现
Selected SVN connector library is not available or cannot be loaded.
原因在于Eclipse3.4并没有内置默认的SVN连接器.
解决办法
自己安装一个SVN连接器,通过在线安装EclipsePlugin的办法安装SVN连接器
下面是安装地址
http://www.polarion.org/projects/subversive/download/eclipse/2.0/ganymede-site/
注意:
安装SVN的前提是使用Eclipse3.4-Ganymede的J2EE的版本
Eclipse3.4-Ganymede的Java版本即使安装SVN连接器也无法使用 应该是缺少某个组件
启动项目,Hibernate随即报错
Caused by: java.lang.NullPointerException
at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:135)
解决办法
OneToOne并使用外键生成器的时候需要持久化对象声明的顺序.被依赖的需要先声明
这个异常是出现在我一个类依赖另一个类来生成主键的时候产生
这时候应该注意的是mapping class的声明顺序,
例如下面,如果Role类依赖User的某个属性(例如我的情况是Role使用foreign key generator根据User的主键生成Role的主键)
这时候就需要先声明User然后声明Role,否则会出现上面的异常.
<hibernate-configuration>
<session-factory>
<mapping class="model.User" />
<mapping class="model.Role" />
</session-factory>
</hibernate-configuration>
当我想要使用Eclipse生成serialVersionUID的时候,Eclipse弹出出错信息.
The following problem occurred.
could not find class file.
make sure the file is compilable.
同时项目中的Java文件出错时会出现的红叉叉也不再出现
对比两个项目的属性发现失败的项目缺少一个名为"Java Builder"的Builder
一般在Eclipse新建项目都会有配置Java Builder
但这个项目是使用m2eclipse的
创建出来并没有JavaBuilder
取而代之的是一个AspectJ Builder
解决办法:
还没有
抱歉这个问题还在困扰着我
尝试过自行添加一个JavaBuilder
到workspace项目中打开.project文件添加下面代码
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
却引来更严重的ClassNotFoundException
"Warning: No grammar constraints (DTD or XML schema) detected for the
document."
可以在Eclipse工具栏中
Windows - Preferences - XML - XML Files - Validate files - Indicate when no grammar is specified
选择ignore
来关闭这个警告
Sitemesh默认不添加Body的属性
例如在Body中常用的onload方法在使用sitemesh后就会失效
解决办法
修改template文件
如果template文件是jsp则可以修改为
<body onload="<decorator:getProperty name="body.onload" />">
</body>
或
<body<decorator:getProperty property="body.onload" writeEntireProperty="true" />>
</body>
如果template文件是freemarker则可以修改为
<body onload="${page.properties["body.onload"]?default("")}">
Error starting Sun's native2ascii:
at org.apache.tools.ant.taskdefs.optional.native2ascii.SunNative2Ascii.run(SunNative2Ascii.j
ava:67)
解决方法:
复制JDK目录下的lib文件夹的tools.jar到JRE目录下的lib文件夹下的ext文件夹
(另外一个更好的办法就是把JRE的路径设置到JDK的目录下)
Copying %Java_Home%/lib/tools.jar to %Java_Home%/jre/lib/ext/tools.jar fixed this problem.
(a better approach is to set up JRE path to the directory JDK)
经过分析:
今天使用Maven创建Appfuse的时候,发现出现Error starting Sun's native2ascii
Maven指向的是JRE的目录,JRE目录下没有tools.jar,故找不到native2ascii
研究后发现Maven指定的是../相对路径按道理能通过找寻上一级文件夹从而找到jdk目录继而找到tools.jar包
因此一般情况下是用JDK里面的JRE不会出现这个问题.
通过上面分析判断项目配置的JRE不在JDK的目录,把tools.jar文件放到JRE目录lib文件夹的ext文件夹下
问题解决