I'm trying to do implement a select component on a page.

I have this :

*CreerClient.java:*
*.....*
// value encoders
@Property
private ApplicatifDtoEncoder applicatifDtoEncoder;

@Property
private TypeClientDtoEncoder typeClientDtoEncoder;

// select models for client types and applications
@Property
private SelectModel selectType;

@Property
private SelectModel selectApplications;

@Inject
SelectModelFactory selectModelFactory;
// data transfer pojos for data retrieving client types and applications
@Property
private List<TypeClientDto> typeClientList;

@Property
private List<ApplicatifDto> applicatifList;

// selected objects for each select and their ids for select value

@Property
private ApplicatifDto selectedApplication;

@Property
private TypeClientDto selectedClientType;
.....
// prepare rendering of the page
void setupRender() {
// retrieve client types and applications id
applicatifList = serviceApplicatif.findAllApplicatifDto();
typeClientList = serviceTypeClient.findAllTypeClientDto();

// initialize selectmodels
selectType = selectModelFactory.create(typeClientList, "nomType");
selectApplications = selectModelFactory.create(applicatifList, "nom");
}







*CreerClient.tml :*
....
<t:Label t:for="typeClientList" />
:
<t:Select value="selectedClientType" t:id="typeClientList"
model="selectType" encoder="typeClientDtoEncoder" />
.....
<t:Select value="selectedApplication" t:id="selectApplications"
model="selectApplications" encoder="applicatifDtoEncoder"
t:zone="applicationsZone" />
.......






*ApplicatifDtoEncoder:*

public class ApplicatifDtoEncoder implements ValueEncoder<ApplicatifDto>,
ValueEncoderFactory<ApplicatifDto> {

@Inject
private IServiceApplicatif serviceApplicatif;

/*
 * (non-Javadoc)
 *
 * @see org.apache.tapestry5.ValueEncoder#toClient(java.lang.Object)
 */
@Override
public String toClient(ApplicatifDto value) {
// return the given object's ID
return String.valueOf(value.getId());
}

/*
 * (non-Javadoc)
 *
 * @see org.apache.tapestry5.ValueEncoder#toValue(java.lang.String)
 */
@Override
public ApplicatifDto toValue(String clientValue) {
// find the ApplicatifDto object of the given ID in the database
return serviceApplicatif.findApplicatifDto(Long.parseLong(clientValue));
}

// let this ValueEncoder also serve as a ValueEncoderFactory
/*
 * (non-Javadoc)
 *
 * @see
 * org.apache.tapestry5.services.ValueEncoderFactory#create(java.lang.Class)
 */
@Override
public ValueEncoder<ApplicatifDto> create(Class<ApplicatifDto> type) {
return this;
}




*TypeClientDtoEncoder :*
public class TypeClientDtoEncoder implements ValueEncoder<TypeClientDto>,
ValueEncoderFactory<TypeClientDto> {

@Inject
private IServiceTypeClient serviceTypeClient;

/*
 * (non-Javadoc)
 *
 * @see org.apache.tapestry5.ValueEncoder#toClient(java.lang.Object)
 */
@Override
public String toClient(TypeClientDto value) {
// return the given object's ID
return String.valueOf(value.getId());
}

/*
 * (non-Javadoc)
 *
 * @see org.apache.tapestry5.ValueEncoder#toValue(java.lang.String)
 */
@Override
public TypeClientDto toValue(String clientValue) {
// find the typeclientdto object of the given ID in the database
return serviceTypeClient.findTypeClientDto(Long.parseLong(clientValue));
}

// let this ValueEncoder also serve as a ValueEncoderFactory
/*
 * (non-Javadoc)
 *
 * @see
 * org.apache.tapestry5.services.ValueEncoderFactory#create(java.lang.Class)
 */
@Override
public ValueEncoder<TypeClientDto> create(Class<TypeClientDto> type) {
return this;
}

}


But when I try to run this page I get :
Render queue error in BeforeRenderTemplate[CreerClient:typeclientlist]:
org.apache.tapestry5.ioc.internal.util.TapestryException

In the console :
[ERROR] TapestryModule.RequestExceptionHandler Processing of request failed
with uncaught exception: Render queue error in
BeforeRenderTemplate[CreerClient:typeclientlist]:
org.apache.tapestry5.ioc.internal.util.TapestryException
org.apache.tapestry5.internal.services.RenderQueueException: Render queue
error in BeforeRenderTemplate[CreerClient:typeclientlist]:
org.apache.tapestry5.ioc.internal.util.TapestryException [at
classpath:atos/smt/livraison/pages/CreerClient.tml, line 38]
at
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:81)
at
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124)
at $PageRenderQueue_10e6509c00f1.render(Unknown Source)
at $PageRenderQueue_10e6509c00ea.render(Unknown Source)
at
org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
at
org.got5.tapestry5.jquery.services.js.JSModule$1.renderMarkup(JSModule.java:40)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$31.renderMarkup(TapestryModule.java:1994)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1978)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1960)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1945)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1931)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1913)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1894)
at $MarkupRenderer_10e6509c00f5.renderMarkup(Unknown Source)
at $MarkupRenderer_10e6509c00f0.renderMarkup(Unknown Source)
at
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47)
at $PageMarkupRenderer_10e6509c00ee.renderPageMarkup(Unknown Source)
at
org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67)
at $PageResponseRenderer_10e6509c0028.renderPageResponse(Unknown Source)
at
org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64)
at
org.apache.tapestry5.services.TapestryModule$38.handle(TapestryModule.java:2222)
at $PageRenderRequestHandler_10e6509c002a.handle(Unknown Source)
at $PageRenderRequestHandler_10e6509c0024.handle(Unknown Source)
at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)
at
org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47)
at $ComponentRequestHandler_10e6509c0025.handlePageRender(Unknown Source)
at $ComponentRequestHandler_10e6509bfff5.handlePageRender(Unknown Source)
at
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45)
at $Dispatcher_10e6509bfff9.dispatch(Unknown Source)
at $Dispatcher_10e6509bfff2.dispatch(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
at $RequestHandler_10e6509bfff3.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
at $RequestHandler_10e6509bfff3.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
at $RequestHandler_10e6509bfff3.service(Unknown Source)
at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
at $RequestHandler_10e6509bfff3.service(Unknown Source)
at atos.smt.livraison.services.AppModule$1.service(AppModule.java:97)
at $RequestFilter_10e6509bffee.service(Unknown Source)
at $RequestHandler_10e6509bfff3.service(Unknown Source)
at $RequestHandler_10e6509bffe7.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
at $HttpServletRequestHandler_10e6509bffe9.service(Unknown Source)
at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:27)
at $HttpServletRequestHandler_10e6509bffe9.service(Unknown Source)
at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_10e6509bffe9.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_10e6509bffe5.service(Unknown Source)
at $HttpServletRequestHandler_10e6509bffe9.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
at $HttpServletRequestHandler_10e6509bffe9.service(Unknown Source)
at $HttpServletRequestHandler_10e6509bffe2.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:477)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.eclipse.jetty.server.Server.handle(Server.java:349)
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452)
at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:884)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:938)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException [at
classpath:atos/smt/livraison/pages/CreerClient.tml, line 38]
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:158)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeforeRenderTemplatePhase.render(ComponentPageElementImpl.java:264)
at
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
... 86 more
Caused by: java.lang.NullPointerException
at
org.apache.tapestry5.internal.util.SelectModelRenderer.option(SelectModelRenderer.java:51)
at
org.apache.tapestry5.util.AbstractSelectModel.visitOptions(AbstractSelectModel.java:54)
at
org.apache.tapestry5.util.AbstractSelectModel.visit(AbstractSelectModel.java:46)
at org.apache.tapestry5.corelib.components.Select.options(Select.java:297)
at
org.apache.tapestry5.corelib.components.Select.beforeRenderTemplate(Select.java)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeforeRenderTemplatePhase.invokeComponent(ComponentPageElementImpl.java:257)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:148)
... 88 more
[INFO] AppModule.TimingFilter Request time: 205 ms


I am certainly doing something wrong in the definition of mly select, but I
don't see what.

Reply via email to