AW: [opencms-dev] scheduled task - publish "page" type resource
Markus Strickler
mstrickler at gmx.de
Tue Aug 10 08:44:02 CEST 2004
Hi Thomas-
I faced the same problem some weeks ago.
What I did was patching com/opencms/file/CmsStaticExport.java like this
(sorry for not attaching a patch, but our CVS is down right now...):
}else {
// this will be false if OpenCms is running from the CmsShell
try{
if (cms.getRequestContext().getRequest() != null) {
m_servletUrl =
cms.getRequestContext().getRequest().getServletUrl();
m_webAppUrl =
cms.getRequestContext().getRequest().getWebAppUrl();
} else {
String context = A_OpenCms.getOpenCmsContext();
m_webAppUrl = context.substring(0, context.indexOf('/',
1));
m_servletUrl = context.endsWith("/") ? context
.substring(0, context.length() - 1) : context;
}
This should do the trick for publishing.
Greetings,
-markus
>-----Ursprüngliche Nachricht-----
>Von: opencms-dev-admin at opencms.org
>[mailto:opencms-dev-admin at opencms.org] Im Auftrag von Thomas
>Joseph Olaes
>Gesendet: Dienstag, 10. August 2004 03:56
>An: opencms-dev at opencms.org
>Betreff: Re: [opencms-dev] scheduled task - publish "page"
>type resource
>
>Alright, I think I figured out why my scheduled task wasn't working.
>
>Line 229 and 230 in com/opencms/file/CmsStaticExport.java
>(OpenCMS 5.0.1)
>
>...
>[229] }else if (cms.getRequestContext().getRequest() != null) {
>[230] // this will be false if OpenCms is running
>from the CmsShell
>...
>
>since I doubt cms.getRequestContext().getRequest() will return
>something other than null when run as a scheduled task, I guess I
>flunk this test.
>
>How does one go about publishing *and* exporting a resource from
>within a scheduled task?
>
>-TJ
>
>On Mon, 9 Aug 2004 14:26:44 -0700, Thomas Joseph Olaes
><thomas.olaes at gmail.com> wrote:
>> Hello list,
>>
>> I've been trying to find an answer to my problem for a few hours now
>> and have been scouring the source code and google to no avail...
>>
>> let's say I have a file in the VFS called:
>>
>> "/test.html"
>>
>> and I have a scheduled task that has the following in launch():
>>
>> // set project to offlineproject
>> ...
>>
>> cmsobject.lockResource("/test.html");
>> // read /test.html in the VFS
>> ...
>>
>> // do stuff to /test.html in the VFS
>> ...
>>
>> // save the content to /test.html in the VFS
>> ...
>> cmsobject.touch("/test.html");
>> cmsobject.unlockResource("/test.html");
>> cmsobject.publishResource("/test.html");
>>
>> I'm pretty much doing the above, and when I publish the
>resource in my
>> scheduled task it looks like the resource is published in the DB, and
>> I even get the output in the Tomcat command console:
>>
>> ...
>> Publishing /system/bodies/sites/site1/index.html
>> Publishing /sites/site1/index.html
>> ------ Checking filesystem links ...
>> ------ .. filesystem link check finished
>> ...
>>
>> The above is actual text from the output of doing the command
>> cmsobject.publishResource(sResourceName);
>>
>> I'm really at a loss here. I notice when I do a normal
>publish through
>> the OpenCMS app, I see:
>>
>> Publishing resource ...
>> Publishing /sites/site1/test1.html
>> Publishing /system/bodies/sites/site1/test1.html
>> Static export, number of starting links is: 2
>> Exporting /sites/site1/test1.html
>> Skipping /system/bodies/sites/site1/test1.html
>> ... static export finished
>> Checking filesystem links ...
>> .. filesystem link check finished
>> ... the resource has been published
>>
>> It looks to me I'm missing this section involving the static
>export...
>> but when I look at the file
>> com/opencms/workspace/CmsPublishResourceThread.java in the
>source code
>> all I see is
>>
>> (line 60)
>> m_report.println(m_report.key("report.publish_resource_begin"),
>> I_CmsReport.C_FORMAT_HEADLINE);
>> (line 61) m_cms.publishResource(m_resourceName,
>false, m_report);
>> (line 62)
>> m_report.println(m_report.key("report.publish_resource_end"),
>> I_CmsReport.C_FORMAT_HEADLINE);
>>
>> where m_cms is a CmsObject acquired through the Servlet
>interface. the
>> lines 60 and 62 just print out: "Publishing resource ..."
>and "... the
>> resource has been published", so I expected if I just did
>> publishResource(sResourceName) which actually maps to
>> publishResource(sResourceName, false, new CmsShellReport()), which
>> looks similar enough to me...
>>
>> Maybe I'm missing something set within the cmsobject? There's a bunch
>> of different variables and stuff that I've skimmed over and I know
>> there's one thing here that's so obvious but I can't see it
>right now.
>> I even checked
>cmsobject.getStaticExportProperties().isStaticExportEnabled()
>> to see if it was passing as true and it was, so that whole
>code inside
>> that if statement (CmsObject.java, lines 2445-2473) is running.
>>
>> So to summarize: I can't get cmsobject.publishResource(String
>> resourceName); to work from within a scheduled task.
>>
>> Thanks in advance for any help given to me, I tried putting up as
>> detailed information above as I could and the steps I've taken so far
>> to try to resolve this if it helps any.
>>
>> -TJ
>>
>_______________________________________________
>This mail is send to you from the opencms-dev mailing list
>To change your list options, or to unsubscribe from the list,
>please visit
>http://mail.opencms.org/mailman/listinfo/opencms-dev
>
>
--
NEU: WLAN-Router für 0,- EUR* - auch für DSL-Wechsler!
GMX DSL = supergünstig & kabellos http://www.gmx.net/de/go/dsl
More information about the opencms-dev
mailing list