2012-05-22 15 views
1

我一直在嘗試幾個小時來解決這個問題,但無法弄清楚問題所在。我想要做的是採取表單輸入並將其保存到數據庫。我以完全相同的方式完成了一百萬次,從未遇到任何麻煩。當訪問Bean時,JSF 2.0/Tomcat/Apache Orchestra @InitView似乎被忽略... Init函數沒有被執行

這裏是我的形式(addPerson.xhtml)

<h:form> 
       <div id="detail_metadata"> 

         <p> 
          <h:outputText class="detail_subheaders" value="#{msgs.first_name}" /><br></br> 
          <h:inputTextarea value="#{addPersonBean.person.firstName}" class="admin_textarea styled"/> 
         </p> 

         <p> 
          <h:outputText class="detail_subheaders" value="#{msgs.last_name}" /><br></br> 
          <h:outputText class="detail_subheaders" value="#{addPersonBean.test}" /><br></br> 
          <h:inputTextarea value="#{addPersonBean.person.lastName}" class="admin_textarea styled"/> 
         </p> 

         <p> 

          <h:outputLabel class="detail_subheaders" value="#{msgs.gender}"/><br/> 

          <h:selectOneRadio id="gender" required="true" value="#{addPersonBean.person.gender}"> 
           <f:selectItem itemLabel="#{msgs.gender_m}" itemValue="m"/> 
           <f:selectItem itemLabel="#{msgs.gender_f}" itemValue="f"/> 
          </h:selectOneRadio> 

         </p> 

         <p> 
          <h:outputText class="detail_subheaders" value="#{msgs.links}" /><br></br> 
          <h:inputTextarea value="#{addPersonBean.person.links}" class="admin_textarea styled"/> 
         </p> 
        . 
            . 
            . 

這是我的豆:

import at.irian.jsfatwork.service.PersonService; 
import at.irian.jsfatwork.domain.Role; 
import at.irian.jsfatwork.gui.util.Utils; 
import org.apache.myfaces.orchestra.conversation.Conversation; 
import org.apache.myfaces.orchestra.conversation.annotations.ConversationRequire; 
import org.apache.myfaces.orchestra.viewController.annotations.InitView; 
import org.apache.myfaces.orchestra.viewController.annotations.ViewController; 
import org.springframework.context.annotation.Scope; 


import javax.inject.Inject; 
import javax.inject.Named; 

@Named("addPersonBean") 
@Scope("manual") 
@ViewController(viewIds = {"/addPerson.xhtml"}) 
@ConversationRequire(conversationNames = "addPersonBean", entryPointViewIds = "/addPerson.xhtml", 
    navigationAction = "addPerson.xhtml") 
public class AddPersonBean extends PersonBeanBase { 

@Inject 
private PersonService personService; 


@InitView 
public void createPerson() { 
    if (person == null) { 
     person = personService.createNew(); 
    } 
} 

public String save() { 
    personService.save(person); 
    return ViewIds.SHOW_COLLECTION; 

} 

public String cancel() { 
    //Conversation.getCurrentInstance().invalidate() 
    return ViewIds.SHOW_COLLECTION; 

} 
} 

和家長:

import at.irian.jsfatwork.domain.Person; 
import javax.faces.model.SelectItem; 
import java.util.List; 

public abstract class PersonBeanBase { 

protected Person person; 
private List<SelectItem> collections; 





public Person getPerson() { 
    return this.person; 
} 

public void setPerson(Person person) { 
    this.person=person; 
} 


public List<SelectItem> getCollections() { 
    return this.collections; 
} 

}

無論我嘗試,@InitView是直接的我恩,當我試圖堅持,人是空的......這怎麼可能?我對提示非常有幫助,因爲我無法看到問題出在哪裏......事實上,我得到這個工作一百萬次之前只是令人沮喪---如果你需要任何額外的代碼/相關信息。非常感謝!

我只注意到我掙的控制檯上看到以下錯誤的輸出:

22.05.2012 17:52:42 org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage loadLibraries 
SCHWERWIEGEND: Error Loading library: /WEB-INF/autorenhp_archive.taglib.xml 
java.io.IOException: Error parsing [jndi:/localhost/autorenhp_archive-webapp/WEB-INF/autorenhp_archive.taglib.xml]: 
    at org.apache.myfaces.view.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:637) 
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.loadLibraries(FaceletViewDeclarationLanguage.java:2033) 
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.createCompiler(FaceletViewDeclarationLanguage.java:1680) 
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.initialize(FaceletViewDeclarationLanguage.java:1958) 
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.<init>(FaceletViewDeclarationLanguage.java:281) 
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguageStrategy.<init>(FaceletViewDeclarationLanguageStrategy.java:52) 
    at org.apache.myfaces.view.ViewDeclarationLanguageFactoryImpl.initialize(ViewDeclarationLanguageFactoryImpl.java:106) 
    at org.apache.myfaces.view.ViewDeclarationLanguageFactoryImpl.getViewDeclarationLanguage(ViewDeclarationLanguageFactoryImpl.java:79) 
    at org.apache.myfaces.application.ViewHandlerImpl.getViewDeclarationLanguage(ViewHandlerImpl.java:175) 
    at org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport.checkResourceExists(DefaultViewHandlerSupport.java:473) 
    at org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport.handleSuffixMapping(DefaultViewHandlerSupport.java:402) 
    at org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport.calculateViewId(DefaultViewHandlerSupport.java:76) 
    at org.apache.myfaces.application.ViewHandlerImpl.deriveLogicalViewId(ViewHandlerImpl.java:114) 
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:151) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: org.xml.sax.SAXException: Error Handling [jndi:/localhost/autorenhp_archive-webapp/WEB-INF/[email protected],26] <function-class> 
    at org.apache.myfaces.view.facelets.compiler.TagLibraryConfig$LibraryHandler.endElement(TagLibraryConfig.java:454) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:198) 
    at org.apache.myfaces.view.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:632) 
    ... 63 more 

我不知道在哪裏,這是來自哪裏...

回答

0

貌似讀取.taglib的SAXParser的.xml文件在/WEB-INF/autorenhp_archive.taglib.xml中發現異常。檢查該文件。

+0

感謝您的評論...對不起,我花了這麼長的時間纔回復,直到今天我還沒到辦公室...我已經檢查了xml文件 - 它的有效性和沒有任何改變。不過可以肯定的是,我將它從上下文paramteres中刪除,因爲它不用於我無論如何遇到問題的文件。 SAxParser異常消失了,但我懷疑問題來自Eclipse Indigo和JBoss Tools。這不是第一次這個插件嚴重破壞我的環境... – user871784