You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@turbine.apache.org by Matthew Pomar <ma...@hotmail.com> on 2003/09/14 18:36:22 UTC

Intake Introspection Problem... Please Help

I've ravaged through the archives, but this problem has never come up
before.... So please help me...

I'm getting a IntrospectionException when Intake tries to map my obj:

            ExtendedUser user = new ExtendedUser();
            group.setProperties(user);

ExtendedUser (extends TorqueUser) is like the one described in the article
on the Turbine web under Torque Sercurity Services. The only different is my
ExtendedUser also implements Retreivable so I can use it in Intake:

    // used for the Retrievable interface implementation
    String key;

    public String getQueryKey() {
        if (key == null) {
            return String.valueOf(getId());
        } else {
            return key;
        }

    }

    public void setQueryKey(String str) throws java.lang.Exception {
        if (key == null) {
            key = str;
        }
    }


My intake.xml file:

    <group name="RegisterGroup" key="RegisterGroupKey"
mapToObject="ExtendedUser">
        <field name="FirstName" key="FirstNameKey" type="String">
            <rule name="required" value="true">This field is
required.</rule>
            <rule name="maxLength" value="255">Field length cannot be >
255.</rule>
        </field>
        <field name="LastName" key="LastNameKey" type="String">
            <rule name="required" value="true">This field is
required.</rule>
            <rule name="maxLength" value="255">Field length cannot be >
255.</rule>
        </field>
        <field name="UserName" key="LoginUserNameKey" type="String">
            <rule name="required" value="true">This field is
required.</rule>
            <rule name="maxLength" value="255">Field length cannot be >
255.</rule>
        </field>
        <field name="Email" key="EmailKey" type="String">
            <rule name="required" value="true">This field is
required.</rule>
            <rule name="maxLength" value="255">Field length cannot be >
255.</rule>
        </field>
        <field name="Password" key="PasswordKey" type="String">
            <rule name="required" value="true">This field is
required.</rule>
            <rule name="maxLength" value="255">Field length cannot be >
255.</rule>
        </field>
        <field name="Confirmed" key="ConfirmedKey" type="String">
            <rule name="required" value="true">This field is
required.</rule>
            <rule name="maxLength" value="255">Field length cannot be >
255.</rule>
        </field>
    </group>


When I get the error, my log shows:

[ERROR] StringField - -IntakeService could not map the setter for field
Confirmed in group RegisterGroup to the property Confirmed in object
com.myco.myapp.om.ExtendedUser <java.beans.IntrospectionException: No method
"setConfirmed" with 1 arg(s) of matching
types.>java.beans.IntrospectionException: No method"setConfirmed" with 1
arg(s) of matching types.
    at java.beans.Introspector.findMethod(Introspector.java:1238)
    at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:61)
    at
org.apache.turbine.services.intake.TurbineIntakeService.getFieldSetter(Turbi
neIntakeService.java:690)
    at
org.apache.turbine.services.intake.TurbineIntake.getFieldSetter(TurbineIntak
e.java:164)
    ...


However, the super class (TorqueUser) of ExtededUser DOES in fact have these
methods. Evern more, I've overidden these methods and implemented them
directly in TorqueUser, but still get the same error.

I've deleted and recreated the Serialized file "appData", but this doesn't
solve the problem.

While looking at Turbine startup, I notice the Intake service is late and
only starts when the first request is made. After my first request was made,
here is the error that we genered in the log (pretty much the same)...

[INFO] BaseServiceBroker - -Start Initializing service (late): IntakeService

[DEBUG] TurbineIntakeService - -Path for serializing:
D:\Java\Apps\tdk-2.3-20030905\.\webapps\mypp\WEB-INF\appData.ser

[DEBUG] TurbineIntakeService - -Path for XML File:
D:\Java\Apps\tdk-2.3-20030905\.\webapps\mypp\WEB-INF\conf\intake.xml

[DEBUG] TurbineIntakeService - -Added
D:\Java\Apps\tdk-2.3-20030905\.\webapps\mypp\WEB-INF\conf\intake.xml as File
to parse

[DEBUG] TurbineIntakeService - -Entered
loadSerialized(D:\Java\Apps\tdk-2.3-20030905\.\webapps\mypp\WEB-INF\appData.
ser, 1063556530077)

[INFO] TurbineIntakeService - -No serialized file found, parsing XML

[DEBUG] TurbineIntakeService - -Now parsing:
D:\Java\Apps\tdk-2.3-20030905\.\webapps\mypp\WEB-INF\conf\intake.xml

[INFO] DTDResolver - -Resolver: used System DTD for
http://jakarta.apache.org/turbine/dtd/intake.dtd

[DEBUG] TurbineIntakeService - -Saving appData for
D:\Java\Apps\tdk-2.3-20030905\.\webapps\mypp\WEB-INF\conf\intake.xml

[DEBUG] TurbineIntakeService - -Entered
saveSerialized(D:\Java\Apps\tdk-2.3-20030905\.\webapps\mypp\WEB-INF\appData.
ser, appDataElements)

[DEBUG] TurbineIntakeService - -Serializing successful

[INFO] BaseServiceBroker - -Finish Initializing service (late):
IntakeService

[ERROR] StringField - -IntakeService could not map the getter for field
Confirmed in group RegisterGroup to the property Confirmed in object
com.myco.mypp.om.ExtendedUser <java.beans.IntrospectionException: No method
"setConfirmed" with 1 arg(s) of matching
types.>java.beans.IntrospectionException: No method"setConfirmed" with 1
arg(s) of matching types.

        at java.beans.Introspector.findMethod(Introspector.java:1238)

        at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:61)

        at
org.apache.turbine.services.intake.TurbineIntakeService.getFieldGetter(Turbi
neIntakeService.java:756)

        at
org.apache.turbine.services.intake.TurbineIntake.getFieldGetter(TurbineIntak
e.java:179)

        at
org.apache.turbine.services.intake.model.Field.<init>(Field.java:311)

        at
org.apache.turbine.services.intake.model.StringField.<init>(StringField.java
:85)

        at
org.apache.turbine.services.intake.model.FieldFactory$3.getInstance(FieldFac
tory.java:102)

        at
org.apache.turbine.services.intake.model.FieldFactory.getInstance(FieldFacto
ry.java:230)

        at
org.apache.turbine.services.intake.model.Group.<init>(Group.java:172)

        at
org.apache.turbine.services.intake.model.Group$GroupFactory.makeObject(Group
.java:560)

        at
org.apache.commons.pool.impl.StackKeyedObjectPool.borrowObject(StackKeyedObj
ectPool.java:183)

        at
org.apache.turbine.services.intake.TurbineIntakeService.getGroup(TurbineInta
keService.java:569)

        at
org.apache.turbine.services.intake.TurbineIntake.getGroup(TurbineIntake.java
:93)

        at
org.apache.turbine.services.intake.IntakeTool.init(IntakeTool.java:153)

        at
org.apache.turbine.services.pull.TurbinePullService.initTool(TurbinePullServ
ice.java:771)

        at
org.apache.turbine.services.pull.TurbinePullService.populateWithRequestTools
(TurbinePullService.java:491)

        at
org.apache.turbine.services.pull.TurbinePullService.populateContext(TurbineP
ullService.java:413)

        at
org.apache.turbine.services.velocity.TurbineVelocityService.getContext(Turbi
neVelocityService.java:287)

        at
org.apache.turbine.services.velocity.TurbineVelocity.getContext(TurbineVeloc
ity.java:157)

        at
org.apache.turbine.modules.pages.VelocityPage.doBuildBeforeAction(VelocityPa
ge.java:85)

        at
org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:148)

        at org.apache.turbine.modules.Page.build(Page.java:91)

        at org.apache.turbine.modules.PageLoader.exec(PageLoader.java:136)

        at org.apache.turbine.Turbine.doGet(Turbine.java:796)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

        at
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java
:466)

        at
org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)

        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)

        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)

        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)

        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)

        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.java:494)

        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)

        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)

        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)

        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)

        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)

        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)

        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)

        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)

        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)

        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:392)

        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)

        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:619)

        at java.lang.Thread.run(Thread.java:534)



Please let me know if you have any suggestions for how I can solve this.

Thanks in advanced for your help.

 - Matt