On Fri, 22 Feb 2002, Mark Cance wrote:
> When I try and view the page (taglib.xml), I get the following error in my > error_log; > > [Fri Feb 22 11:12:49 2002] [notice] Apache/1.3.23 (Unix) AxKit/1.5 > mod_perl/1.26 configured -- resuming normal operations > [Fri Feb 22 11:12:49 2002] [notice] Accept mutex: fcntl (Default: fcntl) > [Fri Feb 22 11:12:57 2002] [error] [client 192.168.11.3] [AxKit] [Error] > Can't locate object method "register" via package "freeloader::taglib > " (perhaps you forgot to load "freeloader::taglib"?) at > /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/Apache/AxKit/Language/XSP. > pm line 15 > 3. You didn't set @INC in your taglib. Really, did you read the TaglibHelper man page? It gives a cut-and-paste example of what you would stick at the top of your file. > > Obviously I've got some more reading to do on the mod_perl front!! But I > assumed my taglib below was complete. > > > > -------------------------------taglib.pm > # > ######################################################################## > #test-taglib > # > ######################################################################## > #001 > > package freeloader::taglib; > > $NS = 'http://www.mytest.com/xsp/taglib/'; > @EXPORT_TAGLIB = ( > 'hello()' > ); > > use Apache::AxKit::Language::XSP::TaglibHelper; > sub parse_char { Apache::AxKit::Language::XSP::TaglibHelper::parse_char(@_); > } > sub parse_start { > Apache::AxKit::Language::XSP::TaglibHelper::parse_start(@_); } > sub parse_end { Apache::AxKit::Language::XSP::TaglibHelper::parse_end(@_); } > use strict; > > > sub hello() { > return "hello world!"; > } > > > > > On 02/21/02 08:02 AM, "Mark Cance" <[EMAIL PROTECTED]> wrote: > >> I'm trying to knock together a taglib with AxKit::TaglibHelper, but there's > >> a couple of things I'm real unsure on. > > > >> My main question is how do I reference the taglib from within my XML. If I > >> remember from my limited knowledge of Cocoon a taglib is referenced by - > >> <?xml-logicsheet href="http://www.mysite.com/mytaglib.xsl"?> I tried this > >> with AxKit without any joy. > > > > The "$NS" variable must be set to the same value that you want to use as the > > URL in your namespace declaration. For example, in your taglib Perl Module > > set: > > > > $NS = "http://mysite.com/my/taglib"; > > > > Then, in your XSP page, you must reference that taglib with a namespace in > > the "xsp:page" tag. For example, > > > > <?xml version="1.0"?> > > <xsp:page > > xmlns:xsp="http://www.apache.org/1999/XSP/Core" > > xmlns:mylib="http://mysite.com/my/taglib" > > language="Perl"> > > <page> > > <!-- this would call the function "my_function" in your new taglib > > <mylib:my_function key='alpha' /> > > </page> > > </xsp:page> > > > > Again, just make certain that the "$NS" variable in your .PM file matches > > the "xmlns" namespace value in your "<xsp:page>" tag. > > > >> My other question, (and probably the root of my problem), is what do I call > >> the taglib in terms of type, (.xsl or .pm?), if its .pm I assume it has to > >> be within a directory on my @INC path and referenced by the XML in a > >> different way than I give above? > > > > Yes, the .PM file must be included in your @INC Path. Just include a > > section at the top of your httpd.conf for your mod_perl server: > > <perl> > > use lib "/my/new/lib/path"; > > </perl> > > > > Finally, make sure you don't forget to include the "AxAddXSPTaglib" > > directive in your "httpd.conf". Without loading the taglib into AxKit there > > is no way that the value of "$NS" can be looked up and the taglib can be > > matched to the XSP page. > > > > Good Luck- > > > > -R > > > > > > > --------------------------------------------------------------------- > 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]
