Spring MVC 碰到 java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX

Spring MVC 应用在 Tomcat 启动的时候出现了下面的错误:

java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX
 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:430)
 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458)
 at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339)
 at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306)
 at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127)
 at javax.servlet.GenericServlet.init(GenericServlet.java:212)
 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
 at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
 at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4659)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 阅读全文 >>

类别: Spring. 标签: , , . 阅读(426). 评论(0) »

有一种方法给 XSLT 中变量进行赋值,是保持状态的那种

在 XSLT 中声明变量可以用 <xsl:variable> 和 <xsl:param>,它们的区别是可以通过 <xsl:param> 从外部向 XSLT 文件传参数,除此之外,在 xslt 内部使用时这两者的用法基本是一样的。下面只以 <xsl:variable> 为例子,例子中的 xsl:variable 替换成 xsl:param 也是能 run 的。

<xsl:variable> 的基本用法是:

<xsl:variable name="username" select="'Initial'"/> <!-- 不写 select 则默认为 '' -->

<xsl:variable name="username" select="'New Value'"/> <!-- 赋值 -->

<xsl:value-of select="$username"/> <!-- 显示变量值,变量名前加上 $ 符号 -->

阅读全文 >>

类别: Java/JEE, XML/DOM. 标签: , . 阅读(243). 评论(0) »

应用 Castor 把 XML 转换成相应的 JavaBean(二)

imagesCAOYA7MJ

紧接前一篇 应用 Castor 把 XML 转换成相应的 JavaBean(一),本例稍显复杂一些,也就是要使用到映射文件,更复杂的 JavaBean、XML 数据类型和结构,引入自定的 FieldHandler,还有存在 Namespace 的情形。

关于如何使用 Castor 来把 XML 映射成 JavaBean 请着重阅读这个链接 http://www.castor.org/reference/html/XML%20data%20binding.html 中的内容,里面有说明支持的类型,如何定义自己的类型 Handler 及配置 Handler 的属性,mapping.xml 文件怎么写及各部份的意义;还有 castor.properties 的配置,比其中的 suppressNamespaces 为 true 时可以忽略掉 Namespace,默认为 false.

直接看例子吧:

1. persons.xml,这里放了一个 Namespace,并定义了一个 Address 类型,还使得节点名与 Bean 的属性名不一致: 阅读全文 >>

类别: Java/JEE, XML/DOM. 标签: , , , . 阅读(149). 评论(0) »

应用 Castor 把 XML 转换成相应的 JavaBean(一)

castor-feature

之前有一篇用例子演示了 应用 JAXB 把 XML 转换成相应的 JavaBean,现在来看另一款 XML Data Binding 工具 Castor 怎么把 XML 映射成 JavaBean  的,相对于 JAXB 规范性的东西,Castor 的官方网站上关于 Castor 的使用文档我觉得要多些。作为一个 XML Data Binding  工具,Castor 同样提供了 Marshaller 和 Unmarshaller 的功能,它不依赖于注解,还是采用映射文件的方式,像 Hibernate 那样的映射文件。

从 Castor 的官方网站 http://www.castor.org/ 看到它的外围生态系统还是不错的,有 JDO、Maven、Spring、Eclipse Plugin 的支持,也有众多组件用到了它。和其他类似工具一样,Castor 也提供了 XML、Schema 生成 Class 类的功能,但照例这里还是看看先有类的情况,怎么从 XML 中获取相应值。

通常使用 Castor 从 XML 得到 JavaBean 需要一个映射文件,要是 JavaBean 的属性和 XML 中的节点名足够齐整规范就可以省去映射文件,先看不用映射文件的例子: 阅读全文 >>

类别: Java/JEE, XML/DOM. 标签: , , . 阅读(201). 评论(0) »

Struts2 使用 xslt 结果类型如何把字符串直接作为 Document 内容(终结)

前面两篇:Struts2 使用 XSLTResult 输出页面内容详解 和 Struts2 使用 xslt 结果类型如何把字符串直接作为 Document 内容 对 Struts2 如何使用 xslt 结果和怎么把字符串直接作为 Document 内容进行的讲解、研究和探讨。关于 Action 中的字符怎么直接作为 xslt 的内容已有一种方法,就是把 String 转换成 org.w3c.dom.Document 类型再送给 xslt 文件。

同时也发现 Struts2 使用了 org.apache.struts2.views.xslt.StringAdapter 了对字符串的处理,并提供了 parseStringAsXML 的开关选项(虽然是无从设置它的值),但即使把 parseStringAsXML 设置成了 true,送给 xslt 文件的内容也是被包裹上了 <result> 根节点,xslt 中不得不用 <xsl:template match="/result/你的根节点"> 来应用模板。

通过在上一篇 Struts2 使用 xslt 结果类型如何把字符串直接作为 Document 内容 里琢磨来琢磨去的探寻,着实又走了不少弯路,甚至是误入了歧途,但终究是找到了一个较好的办法来让 Action 直接送 String 表示的 Document 给 xslt 文件。那就是自定义 StringXSLTResult, 阅读全文 >>

类别: Struts. 标签: , , . 阅读(204). 评论(0) »

Struts2 使用 xslt 结果类型如何把字符串直接作为 Document 内容

在上一篇: Struts2 使用 XSLTResult 输出页面内容详解 中说到了,如果在 Action 中送给 xstl 的是一个字符串,例如 String user = "<user><name>Unmi</name></user>",那么 xslt result 输出的将是:

<result>
&lt;user&gt;&lt;name&gt;Unmi&lt;/name&gt;&lt;/user&gt;
</result>

而不我们期望的

<user>
<name>Unmi</name>
</user>

那么怎么才能做到这一点呢?在 XSLTResult 有 adapterFactory 以及相应的 setter/getter 方法,但它们是 protected,所以也无法定制自己的 AdapterFactory 来判断是字符串就作为 Document 的内容。 阅读全文 >>

类别: Struts. 标签: , , . 阅读(187). 评论(0) »

Struts2 使用 XSLTResult 输出页面内容详解

Struts2 内置提供了 xslt 结果类型,实现类为 org.apache.struts2.views.xslt.XSLTResult,它让你方便的把获得的 XML 数据内容,或者是用 OGNL 能访问到的某个属性(像 ContenxtMap、Request 等中的属性),通过一个 xslt 文件转换成你想要的格式。前面这句听来不怎么明白,后面慢慢道来。

在 Struts2 的 struts-default.xml 中定义了 chain、dispatcher、freemarker、httpheader、redirect、redirectAction、stream、velocity、xslt 和 plainText 10 种类型的 Result;而在 Struts2 初期版本中的 jasper、chart、jsf 和 tiles 结果类型已移到相应的插件去实现了。

freemarker、velocity 和 xslt 可以很自由的使用各自的模板语言,velocity 渐渐淡出了我们的视野,那还剩下 freemarker 和 xslt。freemarker 要求实合并的变量是实体类型,满足了多数时候的需求,不过现在要说的 xslt 结果类型,向 xslt 文件送去的数据可以是实体类型,也可以是原生的 org.w3c.dom.Document 类型,当然到了 xslt 文件这一层处理的都是 阅读全文 >>

类别: Struts. 标签: , , . 阅读(236). 评论(0) »

Lucene 索引、查询日期类型字段

Lucene 的 Field 在构造时内容参数可接受一个字符串或者字节数组,流等,不支持 Date 等类型。如果把 Date.toString() 转换成字符串来索引的话那么存储在索引中的样子就不确定(new Date().toString() 为 “Tue Mar 15 13:25:41 GMT+08:00 2011”),也给下次还原来为 Date 类型带来不便。在以前的版本 Lucene 专门提供了 DateField 来索引 Date 类型,但

现在不推荐使用了,而且也无法用,因为 Lucene 的 Document 在 add(Fieldable field) 时接受的是一个 Fieldable 类,然而 DateField 并未实现 Fieldable 接口,保留它是用来读取老的索引文件。

那 Lucene 要怎么索引日期类型呢?说到底,还是把它转换为字符串,搜索的时候从存储的字符串还原出来,辅助工具类是 DateTools, 它所提供的方法: 阅读全文 >>

类别: Java/JEE. 标签: . 阅读(195). 评论(0) »

HttpClient 模拟登陆,保持会话并进行后续操作

Apache HttpClient 是很方便的 Java 开源的访问 HTTP 资源的组件。网站上的资源不总是能匿名访问的,很多都需要登陆后才能操作,且不说论坛里登陆后才能发言,就是某些稍显敏感的 XML 等信息也是登陆后才能获取到的。

没问题,HttpClient 能让你做到,它提供了 Basic 和 Form-Based 两种验证方式。登陆后获得服务器端发来的 Cookie 作为下一次访问的凭证, 让服务端认为你还是个合法用户。服务端不是用 Session 来维护会话的吗?是的,Session 也要有个载体,Cookie 了。或有时 Java Web 会用 jsessionid 参数在服务端与客户端来回关联 Session 信息,也没问题,HttpClient 同样能胜任。

下面主要说明 Form-Based 的验证方式,Basic 的验证简单列了几行代码,还未实践,具体可参考文后的链接。 阅读全文 >>

类别: Java/JEE. 标签: , , . 阅读(832). 评论(0) »

Struts2 中如何覆盖已内置拦截器的属性(参数)值

在前面一篇 Struts2 中 ModelDriven Action 的 setModel() 为何不起作用? 中发现最漂亮的办法就是修改 ModelDrivern 的 refreshModelBeforeResult 属性为 true,同时留下一个话题。这里接着,即如何覆盖内置拦截器的属性(参数) 值。

如果是自定的拦截器,则可以在 struts.xml 中的 <interceptor> 或 <interceptor-ref> 中用 <param name="paramName">paramValue</param> 来指定参数。但是对于 struts2 核心包内置的或是第三方的拦截器的参数需要进行重新设置该如何呢?

比如在 struts2 包中的 struts-default.xml 中定义很多拦截器,通常我们使用的是其中组织好的 defaultStack 拦截器栈,看 struts-default.xml 中关键几行配置: 阅读全文 >>

类别: Struts. 标签: , . 阅读(239). 评论(0) »
Page 1 of 1512345...10...Last »