2012-03-05 2 views
1

나는 현재 주로 보스 4.2.x를에서 보스 7.1 JSF 1.2를 최대 절전 모드 및 심 2, 를 사용하는 큰 프로젝트를 마이그레이션하는거야 - 그리고 나는 대부분의 문제까지 해결하기 위해 관리했습니다 . 응용 프로그램 서버는 정상적으로 시작되고 현재 오류없이 내 EAR 프로젝트를 배포합니다. JSF 1.2와 Seam 2 솔기가 제대로 시작됩니다.JBoss v7.1에서 JSF v1.2와 함께 Seam v2.2.2.Final 사용 - JSF 태그가 렌더링되지 않습니다 - 이유는 무엇입니까?

그러나 첫 번째 페이지 (예 : context/login.seam)에 액세스하자 마자 브라우저는 렌더링 된 콘텐츠 대신 jsp의 소스를로드합니다. 지금까지 어디로 가야할지 모르겠다. 이 환경을 사용하기 위해 web.xml, faces-config.xml 또는 관련 설정 파일을 변경 했습니까? 전쟁의 web.xml에서

일부 라인 EAR에

<context-param> 
    <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name> 
    <param-value>Mojarra-1.2</param-value> 
</context-param> 

<listener> 
    <listener-class>org.jboss.seam.servlet.SeamListener</listener-class> 
</listener> 
<filter> 
    <filter-name>Seam Filter</filter-name> 
    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>Seam Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<servlet> 
    <servlet-name>Seam Resource Servlet</servlet-name> 
    <servlet-class> 
     org.jboss.seam.servlet.SeamResourceServlet 
    </servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Seam Resource Servlet</servlet-name> 
    <url-pattern>/seam/resource/*</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.seam</url-pattern> 
</servlet-mapping> 

는 JBoss에 배포-structure.xml :


간단히 내가 지금까지 내 프로젝트에 다음과 같은 업데이트를했습니다 요약

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> 
    <deployment> 
     <exclusions> 
      <module name="javax.faces.api" slot="main" /> 
      <module name="com.sun.jsf-impl" slot="main" /> 
     </exclusions> 
     <dependencies> 

      <!-- Wir brauchen in jedem Fall Java Server Faces v1.2... nicht das aktuelle v2.0! --> 
      <module name="javax.faces.api" slot="1.2" export="true" /> 
      <module name="com.sun.jsf-impl" slot="1.2" export="true" /> 

      <!-- Seam braucht einige Libraries, die der JBoss teilweise schon mitbringt... --> 
      <module name="org.apache.commons.beanutils" export="true" /> 
      <module name="org.apache.commons.collections" export="true" /> 
      <module name="org.apache.commons.lang" export="true" /> 
      <module name="org.dom4j" export="true" /> 
      <module name="org.hibernate.validator" export="true" /> 

     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

이미 JBoss v7.1과 함께 제공되는 EAR의 모든 JAR을 모듈로 제거하고 수정했습니다. MANIFEST.MF 파일.

Log4J를 JBoss-Logging으로 대체하고 오래된 FacesMessages 코드를 수정하고 @Service und @Management 클래스를 비활성화했습니다.

또한 my Oracle 데이터 소스는 standalone.xml (ojdbc6.jar 사용)에 추가되었으며 성공적으로 초기화됩니다.


추 신 : 현재이 프로젝트에서는 Seam2를 Seam3으로 대체 할 수 없습니다. 아직 Seam2-JSF2-Branch (https://github.com/heyoulin/seam2jsf2)를 사용하려하지 않았습니다. 대안을 평가하기 전에 현재의 문제점을 이해하고 싶습니다.

+0

시작 중에 다음 오류가 감지되었습니다. 14 : 35 : 28,905 SCHWERWIEGEND [javax.enterprise.resource.webcontainer.jsf.application] (MSC 서비스 스레드 1-7) JSF1051 : 서비스 항목 'org.jboss.as.web.deployment.jsf.JsfInjectionProvider'가 DiscoverableInjectionProvider를 확장하지 않습니다. . 항목은 무시됩니다. –

답변

1

우리는이 문제에 대한 실질적인 진전없이 점점 더 많은 시간을 보냈습니다. 그래서 나는 다른 방법으로 가서 CDI와 EJB v3.1을 위해 Seam을 덤프하기로 결정했습니다! Seam v2에서 사용한 대부분의 것들은 이제 쓸모가 없습니다. 이것은 거대한 이주입니다. 그러나 결국 그것은 갚을 것이라고 생각합니다. 전체적인 메모리 사용을 줄이고 성능을 향상시켜야합니다. Seam v2 및 JBoss v7과 같은 아이디어는 그리 좋지 않습니다.

관련 문제