2014-09-29 6 views
0

struts-layout, struts-taglib1.3.8.jar를 사용하고 있고 struts2.application이 정상적으로 작동하고있었습니다. 그러나 struts2에는 이미 taglib가 있으므로 struts-taglib1.3.8.jar을 제거하고 struts-layout을 1.2에서 1.4로 업그레이드했습니다 (struts2와 호환 됨). 나는 레이아웃 정책을 사용하는 곳에서 예외를 받기 시작했다.struts2와 함께 사용할 때 struts-layout1.4가 messageresource.java에 대한 클래스 def를 찾지 못했습니다.

레이아웃 병을 디 컴파일했습니다. 여기에는 전화를 걸기위한 LayoutUtils.java 클래스가 포함되어 있습니다.

protected static MessageResources messages = MessageResources.getMessageResources("org.apache.struts.taglib.html.LocalStrings"); 

예외를 throw하는 예외는 다음과 같습니다. 그것이 실제로 입니다 오프 기회에, 스트럿츠 2. 어떤 경우

와 호환 말한다 곳

Caused by: java.lang.NoClassDefFoundError: org/apache/struts/util/MessageResources at fr.improve.struts.taglib.layout.util.LayoutUtils.<clinit>(LayoutUtils.java:48) at fr.improve.struts.taglib.layout.PolicyTag.doStartTag(PolicyTag.java:25) at jsp_servlet._common.__appmenu._jspService(__appmenu.java:269) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:416) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:326) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:527) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:447) at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:163) at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:184) at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:80) ... 95 more Caused by: java.lang.ClassNotFoundException: org.apache.struts.util.MessageResources at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253) at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177) at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:37) ... 113 more

답변

0

나는, 예를 들어, 아직도 스트럿츠 1 클래스에 따라, 표시되지 않습니다

<dependency> 
    <groupId>struts</groupId> 
    <artifactId>struts</artifactId> 
    <version>1.2.9</version> 
</dependency> 

적어도 Struts 1 코어 라이브러리를 포함해야합니다.

Struts 2는 Struts 1과 매우 다른 방식으로 메시지 리소스를 조회하고 값을 뷰 레이어에 다른 방식으로 노출합니다 (JSP EL을 통해 여전히 액세스 할 수 있음).

Struts 2 호환성 부분을 완전히 놓친 것 같습니다.

+0

주석 주셔서 감사합니다, 나는 주로 layout-policy.there가 필요합니다. struts2와 함께 struts-layout을 사용할 수있는 방법이 없습니다 (struts 1 또는 taglib에서 종속성을 넣지 않으려 고합니다). 레이아웃으로 작업하고 정책을 구현하기 위해 자체 tld 및 태그 처리기를 만들었습니다. – tataByeBye