I found I have to use ClassLoader and create an input stream to the desired
file. From there I can attach a reader, then use a writer to send the
contents to the response object. Makes a framework for common tasks, like
accessing resource files, necessary. Unfortunately BMC has slapped
copyrights with the labels 'proprietary' and 'confidential' on their 'free'
source code, meaning I will have to reinvent the wheel to write any 'free'
software. It would have been logical to include this specific framework
(resource file handling) in the dv plugin architecture; maybe in the next
version.
Axton Grams
On 11/24/06, Jarl Grøneng <[EMAIL PROTECTED]> wrote:
Not much to help, but I see BMC does exactly the same with the Calendar
module.
The only difference is that they are using the HTML writer class to
print the html code.
--------------------
private void insertScriptingSupport(Map map, HTMLWriter htmlwriter)
{
htmlwriter.openTag("script");
htmlwriter.attr("type", "text/javascript");
String s = (String)map.get(ModelKeys.CONTEXT_PATH);
BrowserType browsertype = (BrowserType)map.get(
ModelKeys.BROWSER_TYPE);
StringBuffer stringbuffer = new StringBuffer(s);
stringbuffer.append("/resources/javascript/");
stringbuffer.append(browsertype.getAbbrev());
stringbuffer.append("/date-picker/DatePicker.js");
htmlwriter.attr("src", stringbuffer.toString());
htmlwriter.endTag();
htmlwriter.closeTag("script");
htmlwriter.openTag("script");
htmlwriter.attr("type", "text/javascript");
htmlwriter.endTag();
insertLocalizedMonthNames(map, htmlwriter);
String s1 = getCurrentPickerDateAsJS(map);
htmlwriter.append("var datePickerCal = new Calendar(");
htmlwriter.append(s1);
htmlwriter.append(", new MonthLabeler());\n");
htmlwriter.closeTag("script");
}
--------------------------
--
Jarl
On 11/22/06, Axton <[EMAIL PROTECTED]> wrote:
> ** I'm trying to write a dv plugin that contains resource files such as
> images, js, etc. I am unable to access the resources contained withing
the
> dv plugin jar. I've played with the PluginExample, but I can't find
what
> I'm missing. The layout of the jar file is this:
>
> 0 Tue Nov 21 19:17:10 EST 2006 META-INF/
> 71 Tue Nov 21 19:17:10 EST 2006 META-INF/MANIFEST.MF
> 0 Tue Nov 21 19:15:52 EST 2006 com/*
> 0 Tue Nov 21 19:15:52 EST 2006 org/*
> ...
> 0 Tue Nov 21 19:16:36 EST 2006 resources/abc.js
> ...
>
> In the dv plugin, I attempt to access the resources using the following:
>
>
> public class BasePlugin implements Plugin {
>
> public void init(PluginConfig config) {
> }
>
> public void processRequest (PluginContext pc) throws IOException,
> NoPermissionException {
> HttpServletResponse response = pc.getResponse();
> response.setContentType("text/html");
> response.setCharacterEncoding("UTF-8");
> PrintWriter writer = response.getWriter ();
> writer.println("<html><head>");
> writer.println("<script src=\"" +
> pc.getPageService().getPluginContextURL() + "/resources/abc.js\"
> type=\"text/javascript\"></script>");
> writer.println("<script>");
> writer.println("function onLoad() {");
> ...
> writer.println("</script>");
> writer.println("</head>");
> writer.println("<body onload=\"onLoad();\"
> onresize=\"onResize();\">");
> ...
> writer.println("</body></html>");
> }
> ...
> }
>
> No such luck. With the PluginExample, after starting a mid-tier
session, I
> am able to access the resource files contained within the plugin using
this
> url structure:
>
> http://localhost/arsys/plugins/PluginExample/resources/images/funny.gif
>
> When I try to do the same with my plugin, I get an ARERR3600.
>
> The app server logs show the following:
>
> Nov 22, 2006 4:29:20 PM - SEVERE ( com.remedy.log.DVMODULE) : (Thread
15)
> Exception while processing
> requestjava.lang.NullPointerException
> at
> org.arswiki.dvplugin.timeline.BasePlugin.processRequest(BasePlugin.java
:64)
> at
> com.remedy.arsys.plugincontainer.impl.PluginServlet.postPluginInfo
> (Unknown Source)
> at
> com.remedy.arsys.plugincontainer.impl.PluginContainer.doRequest(Unknown
> Source)
> at
> com.remedy.arsys.stubs.GoatHttpServlet.postInternal(Unknown
> Source)
> at com.remedy.arsys.stubs.GoatHttpServlet.doGet
> (Unknown Source)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
> (ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java
> :213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
> at org.apache.catalina.valves.ErrorReportValve.invoke
> (ErrorReportValve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
:148)
> at org.apache.coyote.http11.Http11Processor.process
> (Http11Processor.java:869)
> at
>
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:664)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java
> :527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)
> at java.lang.Thread.run (Unknown Source)
>
> Nov 22, 2006 4:29:20 PM - FINE (com.remedy.log.INTERNAL) : (Thread 15)
Throw
> Error - 3600
>
>
> Any insight is appreciated.
>
> Thanks,
> Axton Grams
>
> __20060125_______________________This posting was
> submitted with HTML in it___
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org ARSlist:"Where
the Answers Are"
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org ARSlist:"Where the Answers
Are"