hi there,

I've created a servlet in the Jahia context, from which I can get the sites base service (JahiaSitesBaseService.getInstance()), page base service (JahiaPageBaseService.getInstance()), etc -- the getInstance() methods work.  I now wish to call this servlet from my portlet.

I'm trying to create a page using the API.  It looks like I should use JahiaPageBaseService.createPage.  I'm having trouble constructing the last argument - ParamBean.

When running the servlet by typing in the URL in a browser, setting the parameter to NULL I get a NullPointerException.

I use the following code to run the servlet from my portlet:
        URL url = "" URL("http://localhost:8080/jahia/CreatePersonalHomePage");
        HttpURLConnection con = (HttpURLConnection)url.openConnection();
        con.setRequestMethod("POST");
        con.setDoInput(true);
        con.setDoOutput(true);
        con.setUseCaches(false);        
        con.getInputStream();

In my servlet, I construct my parambean as follows -- I construct the parambean and call createPage from the "service" method of my servlet:
        ParamBean paramBean =
                new ParamBean(
                        request,
                        response,
                        this.getServletContext(),
                        settingsBean,
                        System.currentTimeMillis(),
                        1);

I construct settingsBean as follows:
        String licenseFilename =
                "C:\\jahia404_build5822\\tomcat\\webapps\\jahia\\WEB-INF\\etc\\config\\license.xml";
        String propertiesFilename =
                "C:\\jahia404_build5822\\tomcat\\webapps\\jahia\\WEB-INF\\etc\\config";
        SettingsBean settingsBean =
                new SettingsBean(this.config, propertiesFilename, licenseFilename, 6131);

create page looks as follows:
        svc.createPage(
                1,
                0,
                JahiaPage.TYPE_DIRECT,
                "my personal page",
                25,
                "http://",
                0,
                "thepage",
                -8,
                paramBean);

Problem: the process appears to hang - the last output on my tomcat console is as follows:
 64297 DEBUG org.jahia.services.database.ConnectionDispenser.getConnection:195 - Retrieving new onnection from pool..
 64328 DEBUG org.jahia.bin.JahiaWebAppListener.sessionCreated:32 - Session 093E81F94E6D374963AC8558475636FE was just created...
 64328 DEBUG org.jahia.params.ParamBean.getSiteInfos:1598 - Can't find site in serverName, trying to reverse from page ID...
 64328 DEBUG org.jahia.params.ParamBean.getSiteInfos:1647 - No site found in URL, serverName or via page ID, going to default site...

My browser displays an empty page, and looks like it is still waiting for a response (the icon in the top-right corner continues spinning).

Am I on the right track for creating pages? How should I construct paramBean?

thanks,
Manoj









[EMAIL PROTECTED]

2004/09/02 10:14 AM

Please respond to
[EMAIL PROTECTED]

To
[EMAIL PROTECTED]
cc
Subject
Re: how to use ServicesRegistry?  


        OREF:CPTB3A81





Hi,

This is probably the same problem of trying to call the Jahia API from a
servlet in another context. Please read the Web application developer guide.

Regards,
 Serge Huber.

[EMAIL PROTECTED] wrote:

>
> hi there,
>
> I wish to create pages using the Jahia API.  It looks like I've got to
> use ServicesRegistry (ServicesRegistry.getInstance
> ().getJahiaPageTemplateService(), etc).  From my servlet, I've got the
> code ServicesRegistry.getInstance() but that returns an exception and
> my servlet doesn't render -- I've attached the console output (as well
> as the exception) below.
>
> What setup do I have to do before calling ServicesRegistry.getInstance
> ()?
>
> thanks,
> Manoj
>
>
>                  
> To
>                  [EMAIL PROTECTED]
> cc
>                  
> Subject
>                  JahiaSitesBaseService API
>
>
>
>                  
>
>
>
>                  
>         OREF:CPT60548                  
>
>
>
>
> hi there,
>
> I'm trying to use the Jahia API to create pages and then to set ACLs
> on the pages.
>
> As a starting point, I'm trying to use the JahiaService classes - like
> JahiaSitesBaseService to get a handle to the site and then perhaps
> JahiaPageBaseService to get a handle to a page.
>
> When calling the static getInstance() methods  from my servlet, I get
> an exception (extract attached below).  What is the correct way of
> using the API? Should I be able to use the JahiaServices from my
> servlets?
>
> 756594 DEBUG org.jahia.exceptions.JahiaException.dispatchRequest:335 -
> called.
> org.jahia.exceptions.JahiaException: Can't access application
> NCOP_Portlet_Test, Servlet Exception occured in getAppOutput
> dispatching process ! Message = [javax.servlet.ServletException: Error
> instantiating servlet class org.ncop.minimal.HelloServlet], root
> cause:Error instantiating servlet class org.ncop.minimal.HelloServlet
> root cause=javax.servlet.ServletException: Error instantiating servlet
> class org.ncop.minimal.HelloServlet
>         at
> org.jahia.services.applications.JahiaApplicationsDispatchingServletService.dispatchRequest(JahiaApplicationsDispatchingServletService.java:335)
>
>         at
> org.jahia.services.applications.JahiaApplicationsDispatchingServletService.getAppOutputNoAction(JahiaApplicationsDispatchingServletService.java:653)
>
>         at
> org.jahia.services.applications.JahiaApplicationsDispatchingServletService.getAppOutput(JahiaApplicationsDispatchingServletService.java:910)
>
>         at
> org.jahia.services.fields.ContentApplicationField.getValue(ContentApplicationField.java:102)
>
>         at
> org.jahia.services.fields.ContentField.getValue(ContentField.java:265)
>         at
> org.jahia.data.fields.JahiaApplicationField.load(JahiaApplicationField.java:65)
>
>         at
> org.jahia.services.fields.JahiaFieldBaseService.loadField(JahiaFieldBaseService.java:811)
>
>         at
> org.jahia.services.fields.JahiaFieldBaseService.loadField(JahiaFieldBaseService.java:774)
>
>         at

> org.jahia.services.containers.ContainerFactory.fullyLoadContainer(ContainerFactory.java:147)
>
>         at
> org.jahia.services.containers.ContainerFactoryProxy.load(ContainerFactoryProxy.java:136)
>
>         at
> org.jahia.data.containers.JahiaContainer.checkProxy(JahiaContainer.java:870)
>
>         at
> org.jahia.data.containers.JahiaContainer.getField(JahiaContainer.java:462)
>
>         at
> org.jahia.taglibs.field.AbstractFieldTag.doStartTag(AbstractFieldTag.java:142)
>
>
> thanks,
> Manoj
>
>
> This e-mail is intended exclusively for the addressee.
> If you are not the addressee you must not read, copy, use or disclose
> the e-mail nor the content; please notify us immediately (by clicking
> "Reply") and delete this e-mail.
>


This e-mail is intended exclusively for the addressee.
If you are not the addressee you must not read, copy, use or disclose
the e-mail nor the content; please notify us immediately (by clicking "Reply") and delete this e-mail.

Reply via email to