× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Phil,

In the prototype you posted in your original message, you declare arg0
of the org.apache.poi.poifs.filesystem.POIFSFileSystem constructor to
be an object of the type java.io.FileInputStream. No such constructor
exists in the POIFSFileSystem class. The type of your parameter arg0
should be java.io.InputStream.

The java object will accept a java.io.FileInputStream through type
polymorphism, but the constructor prototype must declare the object
parameter types exactly. I don't believe that the RPG side is capable
of interpreting java object types, inheritance, etc., and strictly
matches by name.

Hope that helps,
Carl.

On 4/10/07, phil.groschwitz@xxxxxxxxx <phil.groschwitz@xxxxxxxxx> wrote:
Thanks, Carl.

I'm sure I'm missing something - but it looks to me that it does match!
Where am I going wrong?





Carl
<c.groner@xxxxxxx
om> To
Sent by: "Java Programming on and around the
java400-l-bounces iSeries / AS400"
@midrange.com <java400-l@xxxxxxxxxxxx>
cc

04/10/2007 01:48 Subject
PM Re: Fw: java prototypes in RPG


Please respond to
Java Programming
on and around the
iSeries / AS400
<java400-l@midran
ge.com>






Hi Phil,

I believe your prototype signature for the POIFSFileSystem constructor
is incorrect, it should be declared to accept a java.io.InputStream as
its only parameter. Since your FileInputStream object is a subclass of
InputStream, you can pass it to the constructor as you are attempting,
but the constructor declaration for the POIFSFileSystem must match the
java declaration.

Carl.

On 4/10/07, phil.groschwitz@xxxxxxxxx <phil.groschwitz@xxxxxxxxx> wrote:
>
> All,
>
> I'm trying to prototype one of the POI methods in rpg. I'm having
trouble
> with POIFSFileSystem.
>
> In java, this works:
>
> java.io.FileInputStream fis = null;
> fis = new FileInputStream("C:/template/POI-template.xls");
>
> org.apache.poi.poifs.filesystem.POIFSFileSystem poifs = null;
> poifs = new org.apache.poi.poifs.filesystem.POIFSFileSystem(fis);
>
> But it RPG it doesn't.
>
> In RPG, I prototyped POIFSFileSystem like this:
>
> D jPOIFSFile...
> D pr O extproc(*java
> D
> :'org.apache.poi.poifs.filesystem-
> D .POIFSFileSystem'
> D :*CONSTRUCTOR)
> D class(*java
> D
> :'org.apache.poi.poifs.filesystem-
> D .POIFSFileSystem')
> D arg0 O class(*java
> D :'java.io.FileInputStream')
> D
> D inFile s O class(*JAVA
> D :'java.io.FileInputStream')
>
> // filename is a String object
> inFile = jInFile(filename);
> poifs = jPOIFSFile(inFile);
>
> When I run it, I get this error:
>
> Message . . . . : Java exception received when calling Java method.
> Cause . . . . . : RPG procedure TEST_TEMPL in program QGPL/POITEST
> received Java exception "java.lang.NoSuchMethodError: <init>" when
> calling
> method "<init>" with signature "(Ljava.io.FileInputStream;)V" in class
> "org.apache.poi.poifs.filesystem.POIFSFileSystem".
> I ran the qsh command that the help suggests:
> qsh cmd('javap -s org.apache.poi.poifs.filesystem.POIFSFileSystem')
>
> Which returns (in part) this:
> public
> org.apache.poi.poifs.filesystem.POIFSFileSystem(java.io.InputStream);
> throws java/io/IOException
> Signature: (Ljava/io/InputStream;)V
>
> java.io.InputStream is an abstract class.
>
> Anyone have any ideas what I need to do for this to work?
>
> Thanks,
>
> Phil
>
>
>
>
> --
> This is the Java Programming on and around the iSeries / AS400
(JAVA400-L) mailing list
> To post a message email: JAVA400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/java400-l
> or email: JAVA400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/java400-l.
>
>
--
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L)
mailing list
To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.



--
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L)
mailing list
To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.