Thank you.  I found out that HiveMind was indeed throwing an exception and it 
was being logged ... I'd missed it.  And, when I googled the exception string I 
found the same solution.  I was going to post the answer but thanks to your 
quick response, I don't need to.

Ezra Epstein 


-----Original Message-----
From: Jesse Kuhnert [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 11, 2006 1:37 PM
To: Tapestry users
Subject: Re: General HiveMind questions

No...I think it's <module id>.<service id>. So, if you hivemodule.xml file has 
CustomTeamPageAdmin as the id and a service id of "jndiLookup" you would 
reference the service as "CustomTeamPageAdmin.jndiLookup" .

The things you see in svn rely on package="" being set on the <module> element, 
it's a convenience to eliminate verbose package strings when constructing 
services..

For JNDI, I think the Virtual Library application has an example of that. It 
even uses jboss so you should feel right at home.

http://tapestry.apache.org/tapestry4.1/exampleapps/index.html
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Vlib/src/context/WEB-INF/hivemodule.xml?view=markup

You almost sound like you've been "forced" to use Tapestry. Ah well.

On 7/11/06, Epstein, Ezra <[EMAIL PROTECTED]> wrote:
>
> OK, thanks to the SVN links, I see I need to reference the service by 
> the Java class of the interface, not by the id which I assigned to 
> that service).  Very curious and I either missed that in the docs or 
> (once
> again?) it's not documented.
>
> I swear, back in Tap2.0 I was an evangelist, but at this point using 
> Tapestry feels like coding by braille or utter trial and error.  Is 
> that just me or is there some hard to find great docs that everyone 
> else has read?  If so, please, please pass along the link.
>
> Thanks,
>
> Ezra Epstein
>
>
> -----Original Message-----
> From: Epstein, Ezra [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 11, 2006 1:19 PM
> To: Tapestry users
> Subject: RE: General HiveMind questions
>
> Thanks.  I'm not (yet) using autowire (nor Tap4.1) so how does one 
> reference something in a page?  I'm trying to use an annotation but 
> it's not working.  Here are some details:
>
> <html-snippet file="View.html">
> <p><span jwcid="@Insert" value="ognl:date">Monday</span></p>
>
> <p><span jwcid="@Insert" value="ognl:jndiServiceString">jndi
> info</span></p> </html-snippet>
>
> <java-snippet file="View.java">
> import java.util.Date;
>
> import org.apache.hivemind.lib.NameLookup;
> import org.apache.tapestry.annotations.InjectObject;
> import org.apache.tapestry.html.BasePage;
>
> public abstract class View extends BasePage {
>
>         @InjectObject("service:jndiLookup")
>         public abstract NameLookup getJndiLookupService();
>
>         // This blows chunks.
>         public String getJndiServiceString() {
>                 return getJndiLookupService().toString();
>         }
>
>         // This works
>         public String getDate() {
>                 return (new Date()).toString();
>         }
>
> }
> </java-snippet>
>
> <xml-snippet file="hivemodule.xml">
> <?xml version="1.0"?>
> <module id="CustomTeamPageAdmin" version="1.0.0">
>
>         <service-point id="jndiLookup"
>                 interface="org.apache.hivemind.lib.NameLookup"
>                 parameters-occurs="none">
>
>                 <invoke-factory service-id="hivemind.BuilderFactory"
>                         model="singleton">
>
>                         <construct class="
> org.apache.hivemind.lib.impl.NameLookupImpl">
>                                 <set property="initialFactory"
>                                         value="
> org.jnp.interfaces.NamingContextFactory" />
>                                 <set property="URLPackages"
>                                         value="
> org.jboss.naming:org.jnp.interfaces" />
>                                 <set property="providerURL"
>                                         value="jnp://localhost:1099" />
>                                 <set-service property="coordinator"
>                                         
> service-id="RemoteExceptionCoordinator"
> />
>                                 <event-listener 
> service-id="RemoteExceptionCoordinator" />
>                         </construct>
>
>                 </invoke-factory>
>         </service-point>
> </module>
> </xml-snippet>
>
>
> The hivemodule.xml is in the WEB-INF folder and is being found and 
> parsed (I know, because I initially left out the version attribute and 
> saw an exception in the JBoss logs).
>
> The above doesn't work.  Am I referencing the hivemind stuff the wrong 
> way? using the annotation incorrectly?  HiveMind is completely silent 
> on the subject (nothing in the JBoss logs or the page) what I see is:
>
> <output-snippet>
> org.apache.tapestry.BindingException
> Unable to read OGNL expression '<parsed OGNL expression>' of
> [EMAIL PROTECTED]: jndiServiceString
> binding         ExpressionBinding[View jndiServiceString]
> location        context:/View.html, line 11
> 6
> 7       <div jwcid="@For" source="ognl:list" value="ognl:item">
> 8       <span jwcid="@Insert" value="ognl:item" /><br />
> 9       </div>
> 10
> 11      <p><span jwcid="@Insert" value="ognl:jndiServiceString">jndi
> info</span></p>
> 12
> 13      </body>
> 14      </html>
> org.apache.hivemind.ApplicationRuntimeException
> Unable to read OGNL expression '<parsed OGNL expression>' of
> [EMAIL PROTECTED]: jndiServiceString
> component       [EMAIL PROTECTED]
> location        context:/View.html
> ognl.OgnlException
> jndiServiceString
> java.lang.AbstractMethodError
> amazon.pizza.portal.tapestry.pages.View.getJndiLookupService
> ()Lorg/apache/hivemind/lib/NameLookup;
>
>     * amazon.pizza.portal.tapestry.pages.View.getJndiServiceString(
> View.java:21)
>     * sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     * sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:39)
>     * sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
>     * java.lang.reflect.Method.invoke(Method.java:585)
>     * ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:491)
> </output-snippet>
>
> Which, thanks to the vaunted "line-precise error reporting," tells me 
> exactly what I already knew and very little about what's causing the 
> issue.  Hence this post.... Any help appreciated.
>
> BTW, I can't for the best Google query I can construct, find a simple 
> example of accessing a JNDI object via HiveMind and using it in 
> Tapestry page or component.  I'd think this would be a canonical 
> example.  I find plenty with Spring, of course, ...
>
> Ezra Epstein
>
>
> -----Original Message-----
> From: James Carman [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 11, 2006 12:17 PM
> To: 'Tapestry users'
> Subject: RE: General HiveMind questions
>
> Well, HiveMind does support "bean" services, but they're not 
> recommended really (at least not by me).  Interface-based services are 
> preferred.
> Anyway, if you have to use a bean, all you have to do is use the bean 
> class as the interface when defining your service.  You can set your 
> "parameters"
> by autowiring (if they're supposed to be references to other HiveMind
> services) or using XML inside the hivemodule.xml file.  If you're 
> using tapestry-autowire (or Tap4.1), then all you have to do is 
> declare an abstract getter of the same type as your bean class and 
> Tapestry will automatically look it up for you.
>
> -----Original Message-----
> From: Epstein, Ezra [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 11, 2006 3:12 PM
> To: Tapestry users
> Subject: General HiveMind questions
>
> So I've got an object I want to make available to a Tapestry page and 
> I want to use HiveMind to do this.  What are the steps one takes?
>
> More specifically: the object does *not* implement an interface; the 
> object has parameters (set via mutator methods).
>
> (Maybe should be posted on the HiveMind lists)
>
> Thanks,
>
> Ezra Epstein
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Jesse Kuhnert
Tacos/Tapestry, team member/developer

Open source based consulting work centered around dojo/tapestry/tacos/hivemind.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to