The ParamBean object tries to decode the URL, looking for certain parameters such as a page ID, current editing mode, etc... Basically try to generate an URL that would look like this :


http://localhost:8080/jahia/CreatePersonalHomePage/pid/3/op/edit

or something like that. When Jahia creates a page it needs to know the current page that will automatically become the parent page. Also, when creating a page you also need to create the "navigation container" that will contain it. All this is not trivial but has been covered in the various mailing lists before, I suggest you search for it.

Regards,
 Serge Huber.

[EMAIL PROTECTED] wrote:


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 = new 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