XSQL and FOP 0.20.x
Hi,
Trying to use the latest XSQL with FOP 0.20.3. The error message:
XSQL-017: Unexpected Error Occurred
java.lang.NoSuchMethodError: org.apache.fop.apps.Driver: method buildFOTree(Lorg/w3c/dom/Document;)V not found
buildFOTree method does not exist anymore (it existed until FOP 0.19.x), instead Driver.run is doing all the parsing and building the document tree.
When can we expect a working version of XSQL with current FOP versions.
Many thanks,
Ashkan.
the file xsqlserializers.jar contains the FOP serializer. In the XSQL documentation you can find the versions of FOP for which it can be used.
You can adapt this serializer to work with the latest version of FOP.
Similar Messages
-
I am trying to set up FOP with XSQL on Oracle 9iAS so I can run the emp.xsql example. I have downloaded the FOP 0.14 version and included the xsqlserializers.jar, fop_bin_0_14_0.jar and w3c.jar in the wrapper.classpath.
I was expecting pdf file when I try to bring up the xsql page but instead I am getting xml in the browser. Is there anything else that needs to be done? Can some one post the steps of configuring FOP with XSQL?
Thanks.Doesn't work. Here is what I did:
I am running Oracle 9iAS. I downloaded XDK for Java 9.0.2B and I replaced the $OH/xdk/lib/*jar with the new xdk's lib/*jar.
Then I downloaded Fop-0.19.0-CVS-bin.tar.gz and copied the fop.jar to the $OH/xdk/lib/ directory.
I added following lines to the xml.properties file:
wrapper.classpath=/u01/app/oracle/product/9iAS/xdk/lib/xsqlserializers.jar
wrapper.classpath=/u01/app/oracle/product/9iAS/xdk/lib/oraclexsql.jar
wrapper.classpath=/u01/app/oracle/product/9iAS/xdk/lib/fop.jar
When I tried the emp.xsql with the emptablefo.xsl I still the xml result in the browser instead of PDF.
Here is what I see in browser
<?xml version="1.0" encoding="UTF-8" ?>
- <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <fo:layout-master-set>
- <fo:simple-page-master master-name="first" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm">
<fo:region-body margin-top="3cm" />
</fo:simple-page-master>
</fo:layout-master-set>
- <fo:page-sequence master-name="first">
- <fo:flow flow-name="xsl-region-body">
<fo:block font-size="24pt" font-family="Garamond" line-height="24pt" space-after.optimum="3pt" font-weight="bold" start-indent="15pt">Total of All Salaries is $29025</fo:block>
- <fo:block border-width="2pt">
- <fo:table>
<fo:table-column column-width="4cm" />
<fo:table-column column-width="4cm" />
.. -
Xsql and fop - showing blank pdf in browser
I am using the following configurations:-
Apache 1.3.27 webserver,
Apache Jserv 1.1.1
xdk java version 9.2.0.5.0
fop 0.16.0
Adobe acrobat 4.0
All other examples are working .
The problem is
when i am trying to access ../xsql/fop/emptable.xsql
i am getting blank page (nothing is coming on the
browser). But I think browser is loading acrobat
because i can see the accrobat's flash page for a
second.
I think nothing wrong with acrobat , because i used to
see pdf files from internet
thanks in advanceI am using the following configurations:-
Apache 1.3.27 webserver,
Apache Jserv 1.1.1
xdk java version 9.2.0.5.0
fop 0.16.0
Adobe acrobat 4.0
All other examples are working .
The problem is
when i am trying to access ../xsql/fop/emptable.xsql
i am getting blank page (nothing is coming on the
browser). But I think browser is loading acrobat
because i can see the accrobat's flash page for a
second.
I think nothing wrong with acrobat , because i used to
see pdf files from internet
thanks in advance -
How to: XDK10 and FOP 20.5 - this works
Hi All
Let me share with you all how to get XDK 10 and FOP 20.5 working. Below are all the versions of files that you require:
XDK 10
I use all the .jar files from the /lib directory
FOP 20.5
fop.jar
avalon-framework-cvs-20020806.jar
batik.jar
xalan-2.4.1.jar
xercesImpl-2.2.1.jar
The next thing is that I rewrote the xsqlserializer.jar file and here is the code:
package oracle.xml.xsql.serializers;
import org.w3c.dom.Document;
import org.apache.fop.messaging.MessageHandler;
import oracle.xml.xsql.XSQLPageRequest;
import oracle.xml.xsql.XSQLDocumentSerializer;
import org.apache.fop.apps.Driver;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.logger.ConsoleLogger;
* Tested with the FOP 0.20.3RC release from 19-Jan-2002
public class XSQLFOPSerializer implements XSQLDocumentSerializer {
private static final String PDFMIME = "application/pdf";
public void serialize(Document doc, XSQLPageRequest env) throws Throwable {
try {
// First make sure we can load the driver
Driver FOPDriver = new Driver();
// Tell FOP not to spit out any messages by default.
// You can modify this code to create your own FOP Serializer
// that logs the output to one of many different logger targets
// using the Apache LogKit API
Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
MessageHandler.setScreenLogger(logger);
FOPDriver.setLogger(logger);
// Some of FOP's messages appear to still use MessageHandler.
MessageHandler.setOutputMethod(MessageHandler.NONE);
// Then set the content type before getting the reader/
env.setContentType(PDFMIME);
FOPDriver.setOutputStream(env.getOutputStream());
FOPDriver.setRenderer(FOPDriver.RENDER_PDF);
FOPDriver.render(doc);
catch (Exception e) {
// Cannot write PDF output for the error anyway.
// So maybe this stack trace will be useful info
e.printStackTrace(System.err);
The above defnitely works for me and should work for you too. Think of it as an early christmas present.
Best wishes
RichardHi, richardgossow
I used the similar code as yours and it worked in Jdev10.1.3.0.0 and ias 10.1.3.1.for FOP 0.20.5.
WhenI upgrade my Jdev from 10.1.3.0.0. to 10.1.3.3.0.4517, it still worked in Jdeveloper.
However, when I deployed the latter to ias 10.1.3.1 on Windows (64bit), it failed with
Oracle XML Developers Kit 10.1.3.1.0 - Production
XML-25022: Cannot load serializer class
Do you and anyone know why?
Message was edited by:
bsmt -
XSLT and FOP in a 1.3 environment
I've just set up a small proof of concept XSLT and FOP engine under the new JVM.
But now I have to translate that back to a 1.3 environment for implementation and production.
There were two things that I noticed. Java 5.0 = simple as hell. Java 1.3 = hunt the apache classes.
Okay, I recognise that with each step forward, Sun is likely to provide their own concrete implementations of functionality we've come to expect since the last release.
Can anyone out there give me a little advice on how to go about setting up XSLT and FOP in a 1.3 environment? I've tried importing a whole range of apache jars and still find I'm short on things like "org.apache.log.Logger".
What is the bare minimum that I need?I have a feeling that I've been wasting everybody's time...
It was not of course the FOP code that relied on 1.5 as several of you pointed out. The javax transformation packages that were imported into our environment were from the 1.5 when they should have been from the earlier release, hence the StringBuilder hang up.
Having now made sure we have the right code in the right place, gues what; it works.
Apologies for the confused and confusing nature of my posts. If it is any consolation, for whatever reason, building environments within which code should run is a personal bugbear and the one thing likely to make me throw my hands up in despair.
Thanks anyway. I'll distribute some dollars on no particular basis. -
I've been reading thru the postings for XSQL and read a couple of references on how to get an out variable from a stored procedure. I read this thread from 3/31:
http://technet.oracle.com:89/ubb/Forum11/HTML/001444.html
Anyway, I followed the advice and I get the following error message:
ORA-06571: Function CHECK_USER does not guarantee not to update database
Did some research and found that I would need to create a PRAGMA in my function, which would need to be packaged. I did that, but the function would not compile because it would not fulfil the pragma. Below is the procedure I am trying to run, the wrapper function, and the XSQL source. Any ideas?
Thanks
Procedure
Procedure check_user( inSiteID varchar2,
v_userid number default null,
inExtID varchar2 default null,
v_return out varchar2)
AS
ParamIsNull EXCEPTION;
invalid_data EXCEPTION;
v_errmsg varchar2(200);
v_count number := 0;
BEGIN
If v_userid Is Null AND inExtID Is Null Then Raise ParamIsNull; End If;
If v_userid Is Not Null AND inExtID Is Not Null Then Raise ParamIsNull; End If;
If v_userid Is Not Null Then
SELECT COUNT(1) INTO v_count FROM USERS WHERE site_id=inSiteID and USERID = v_userid;
If v_count = 0 then
v_errmsg := '0, UserID Not Found';
raise invalid_data;
Else
v_return:=('1');
End if;
End If;
If inExtID Is Not Null Then
SELECT COUNT(1) INTO v_count FROM USERS WHERE site_id=inSiteID and ext_uid = inExtID;
If v_count = 0 then
v_errmsg := '0, External ID Not Found';
raise invalid_data;
Else
v_return:=('1');
End if;
End If;
EXCEPTION
WHEN ParamIsNull THEN
v_return:=('0,1 Parameter Expected');
WHEN invalid_data THEN
v_return:=v_errmsg;
END check_user;
Function
CREATE OR REPLACE PACKAGE DON AS
FUNCTION CHECK_USER (siteid IN VARCHAR2, userid IN NUMBER, extid IN VARCHAR2)
RETURN VARCHAR2;
PRAGMA RESTRICT_REFERENCES (CHECK_USER, WNDS);
END DON;
CREATE OR REPLACE PACKAGE BODY DON AS
FUNCTION CHECK_USER (siteid IN VARCHAR2, userid IN NUMBER, extid IN VARCHAR2)
RETURN VARCHAR2 IS v_return VARCHAR2(200);
BEGIN
OTS_SCOPUS_PACK.CHECK_USER(siteid, userid, extid, v_return);
RETURN v_return;
END;
END DON;
XSQL Source
<?xml version="1.0"?>
<xsql:query xmlns:xsql="urn:oracle-xsql" connection="mvdv">
select don.check_user('{@siteid}', {@userid}, '{@extid}') from dual
</xsql:query>Your 'DON.CHECK_USER' function has a RESTRICT_REFERENCES pragma but it calls 'OTS_SCOPUS_PACK.CHECK_USER' which must also have a RESTRICT_REFERENCES pragma.
All functions/procedures that are called directly or indirectly by 'DON.CHECK_USER' need to have a RESTRICT_REFERENCES pragma to guarantee that they do not write to the database or to a package.
You cannot just write a wrapper function and apply the pragma to it.
Good luck!
null -
I made a xsql file (sql in xml file) and I want to deploy it. I have made JSP files too.
Which server can run xsql and JSP files?
Oracle 8.1.6 can run xsql and JSP files?
Thank youCheck out the [MIMES] section of webtogo.ora file which is located in %JDEVHOME%\lib. There is an entry which defines the handler for .xsql files (which in this case is the XSQL Servlet (oracle.xml.xsql.XSQLServlet). Same goes for jsps. You can run this on any Java enabled web server.
The version of OAS which will provide this functionality is the soon expected 4.0.8.2 -
Printing with xsql and css or xsl and fop
How to incorporate css or css2 with xsql?
I want some sample files. What is FOP? How can we use it for printing and print viewThanks for your reply. I know FOP. How to run it with tomcat3.2 and xsql?
I already onto css1 and css2. XSLT stylesheets are working fine for me. But for taking print outs using the paged media with css2 i require some help. Currently I am reading Oracle XML Applications by Steve Muench from o'reilly.
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Steven Muench ([email protected]):
See the XSQL Servlet examples. Most of the demos have XSLT stylesheets that generate HTML which includes references to CSS stylesheets.
FOP is the Apache Formatting Object Processor.
See the XSQL Release notes for information on using FOP with XSQL Pages for rendering PDF files from database queries.<HR></BLOCKQUOTE>
null -
Has anyone got FOP working on OC4J? I have compiled the FopServlet that comes with the download. It does not render a PDF just a blank webpage. Maybe someone else has seen this error?
Thanks,
Tom HenricksenHere's an excerpt from my j2ee/home/config/application.xml file which should give you some idea as to which jars to use
<!-- XSQL Server Pages and Formatting Objects - PDF -->
<library path="../../../lib/xsu12.jar" />
<library path="../../../lib/oraclexsql.jar" />
<library path="../../../lib/xsqlserializers.jar" />
<library path="../../../lib/xmlparserv2.jar" />
<library path="../../../../../../JLib/Apache/fop-0_16_0/fop.jar" />
<library path="../../../../../../JLib/Apache/fop-0_16_0/lib/w3c.jar" /> -
XSQL and BEA Weblogic 6.1
I spent a lot of time trying to figure out how to configure
the XSQL servlet to run on BEA Weblogic 6.1
It is really simple once you understand that you should work
off expanded directory instead of trying to get a .war or .ear
file uploaded.
I decided to give my explanation to help others...
This works with the current XDK (9.0.2.0.0D) on OTN and I got it
running on Windows 2000 and/or Solaris.
I based these instructions on Steve Muench for
"ANN Deploy Oracle XSQL Pages to OC4J" off the OTN web site.
1) get the latest xdk_java off the OTN web site.
2) create a directory (or subdirectory) named xsql (to hold the entire application
3) create /xsql/META-INF
/xsql/WEB-INF
/xsql/WEB-INF/lib
/xsql/WEB-INF/classes
structure to hold the XSQL servlet
4) create a /xsql/META-INF/application.xml with the following code:
<!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN'
'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
<application>
<display-name>Oracle XSQL Servlet</display-name>
<description>Oracle XSQL Servlet</description>
<module>
<web>
<web-uri>xsql.war</web-uri>
<context-root>xsql</context-root>
</web>
</module>
</application>
5) create the file /xsql/WEB-INF/web.xml with the following content
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
<web-app>
<servlet>
<servlet-name>oracle-xsql-servlet</servlet-name>
<servlet-class>oracle.xml.xsql.XSQLServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>oracle-xsql-servlet</servlet-name>
<url-pattern>*.xsql</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>oracle-xsql-servlet</servlet-name>
<url-pattern>/xsql/*</url-pattern>
</servlet-mapping>
</web-app>
6)extract the xdk_java (that you copied from the OTN) on a temporary directory. (/otn)
7) copy the following files (they are in the /otn/lib subdirectory) into /xsql/WEB-INF/lib
oraclexsql.jar
xsqlserializers.jar
xmlparserv2.jar
xsu12.jar
8) copy /otn/xdk/admin/XSQLConfig.xml to xsql/WEB-INF/classes
9) copy the entire directory and subdir /otn/xdk/demo/java/xsql to /xsql/demo
10) no need to create a war or ear file as Weblogic will work better from the expanded directory
anyway and it is simpler to implement.
11) Now you need to copy that entire directory structure /xsql over to the Weblogic Application Server
config/domain-name/applications area so in my case it is
/bea/wlserver6.1/config/your_domain/applications/xsql
12) If Weblogic is running in development mode, it should deploy and load the servlet automatically.
If it is running in production mode, then we would need to restart it.
13) You should be able to test this with http://your_host:7001/xsql/demo/index.html
Any URL that specifies the /xsql will then be treated by the
XSQL Servlet.
It works for me...Hi Denis,
I followed your procedure to deploy XSQL Servlet on WebLogic 6.1. First I deployed as expanded directory structure although I turned 'Auto Deployed Enabled' flag to on for my domain, WebLogic couldn't pick up the application. Then I tried to create ear application and deployed it (In your message you are saying that don't need to create ear or war, you mean this is not just a necessity or it never could be deployed as ear/war files). I saw on the as deployed on console but when I tried the http://myhost:7001/xsql/demo/index.html, I got the following error message.
Oracle XDK Java 9.2.0.2.0 Production
XSQL-013: XSQL Page URI is null or has an invalid format.
Oracle XDK Java 9.2.0.2.0 Production
XSQL-013: XSQL Page URI is null or has an invalid format.
Can you help me to trouble shoot this problem? Thank you very much
Deha Peker -
This may sound like a dumb question but I can't figure out how to associate the xml doc with the xsql doc to do an insert. Here are my files:
XSQL - filename custins.xsql
<?xml version="1.0" ?>
<xsql:insert-request table="CUSTOMERS_OV" connection="dev7" xmlns:xsql="urn:oracle-xsql"/>
XML - No file name, genned on the fly in javascript
<?xml version='1.0'?>
<ROWSET><ROW>
<CUST_NO>1</CUST_NO>
</ROW></ROWSET>
I call custins.xsql as a submit from a form. The xml is dynamically created and I pass it as a parameter, i.e.
http://localhost:7070/custins.xsql?docxml=<?xml version='1.0'?><...etc>
What I get when I do this is:
<?xml version="1.0" ?>
<xsql-status action="xsql:insert-request" result="No posted document to process" />
Can anyone tell what I'm doing wrong?
Thanks,
Lewis
nullGot it figured out. I was using method="get" while debugging and xsql expects it to be post.
Now I'm getting:
<?xml version="1.0" ?>
- <xsql-error action="xsql:insert-request">
<message>Exception ' The XML element tag 'DocXml' does not match the name of any of the columns/attributes of the target database object.' encountered during processing ROW element 0All prior XML row changes were rolled back. in the XML document.</message>
</xsql-error>
Which I'm assuming means that it wants to parse out the parameters instead of me making an xml doc. The problem with that is my data resides in 3 frames, across 7 forms. How do I handle this?
I'll post this question with a new topic.
null -
Hi,
We would like to use the PDF printing of 3.0.1
I am trying to install FOP but I do not have any knowledge in OC4J and Java ... so I am kind a lost right now.
I am following the installation guide of OC4J standalone (http://download.oracle.com/docs/cd/B32110_01/web.1013/b28950/install.htm#BABIBGCA)
I was wondering :
1- do I need to install oc4j standalone in a separate Oracle Home ?
2- There is already an OC4J installed in my db Oracle Home , I guess for emdbconsole. So , I created a new directory called oc4j_sa and unzipped the file. When I start OC4J with oc4j -start , it does not give me the prompt back. Then , I can access the web page with port 8888 (192.168.0.21:8888) , but 192.168.0.21:8888/em fails . So I cannot deploy the FOP war file.
Any pointers or guidance would be great.
Thanks
Francis.
P.S. :
Oracle 10.1.0.5
Oracle Linux (RH 4)OK, I finally got to the deployment of FOP but now it generates a corrupted PDF.
Are there any log files that I can check ?
I created a new Oracle_home for OC4J and ran "EM" to deploy FOP and everything worked like in the viewlet.
Now I did the setup in APEX and set the following :
Standard Support
Print Server Protocol HTTP
Print Server Host Address 192.168.0.21
Print Server Port 8888
Print Server Script /fop/apex_fop.jsp
I created a sample application to test. In a report , I added the print link.
When I clic Print, the pdf generated is corrupted and does not work.
Thanks
Francis. -
Xsql and Stored Procedures/Packages
I need to call a stored proc that includes a select statement through XSQL. The procedure returns a ResultSet. I have not been able to find a way to bind this parameter, or to return this ResultSet. Has anybody tried to do this?
TIAThe <xsql:ref-cursor-function> exists for just this purpose.
If you already have a function that returns a REF CURSOR in an OUT parameter of a procedure, just write a wrapper function that returns that OUT value as the return value of a function and then use <xsql:ref-cursor-function> to repurpose it's results as XML in your XSQL page. -
XSQL and HttpSession object availability
Hello,
How to access the very convenient unique HttpSession unique ID?
The one we have this way within a servlet:
HttpSession session = request.getSession(true);
System.out.println(session.getId());
Thank You in advance
JRoch
nullYou can access this easily by writing a custom action handler. Here is the code for a custom action handler that sets the value of the Http Session id into a page parameter named "session-id".
import oracle.xml.xsql.*;
import java.sql.SQLException;
import org.w3c.dom.Node;
import javax.servlet.http.*;
public class GetSessionId extends XSQLActionHandlerImpl {
public void handleAction( Node rootNode ) throws SQLException {
XSQLPageRequest req = getPageRequest();
if (req.getRequestType().equals("Servlet")) {
HttpSession sess =
((XSQLServletPageRequest)req).getHttpServletRequest().getSession(true);
if (sess != null) {
req.setPageParam("session-id",sess.getId());
}Then from within your XSQL page, you can say:
<xsql:action handler="GetSessionId"/>
and then later in the page refer to the parameter named session-id to access it's value as a lexical or bind parameter. -
I am trying to set up xsql in WebLogic version 6.0. I can set up to run any stand alone servlet but how to tell it to run XSQLSERVLET when extension is .xsql? I've seen in WebLogic 5.1 you do it by setting weblogic.httpd.webApp.xsql=directory with xsql jar file but version 6.0 doesn't have weblogic.properties.
WLS 6.0 will be supported in the next release of WLCS, which is due in the
spring.
- Ginny
"aamerG" <[email protected]> wrote in message
news:3a5cb774$[email protected]..
Hi everyone,
we are starting a new development project and would like to use Weblogic
6.0. How soon do you think there we be a version of WLCS which works with
6.0.
TIA
Maybe you are looking for
-
How do I change the default location for mail files?
I want to move my mail folders from /Library/Mail and /Library/Mail Downloads folders to a different drive. How can I do this? I know how to move them - I want to know how I make mail aware of where I have put them). I have an encrypted SSD I want to
-
Re: Error code CL-0x000f
Having the same issue. Keeps goind in and out. Its really getting to be a pain as im unable to watch the shows i want when i want.
-
Submitting xml using BI Publisher Web Services
Hi, We are developing a web service wrapper around the BI Publisher web services and we are facing problems in consuming the BI Publisher web services. As per the scheduleReport method in the java class, it sends an xml data input to BI Publisher and
-
I recently tried to install some fonts that a friend gave me, and am having trouble- mostly they are .ttf extensions, but a few are .otf The fonts don't appear to install to fontbook, but they show in my user>library>fonts folder. They also display w
-
Hey all, I am upgrading a standard GC 10.2.0.1 for Linux x86 without any modifications to the latest patch set 10.2.0.4 and have run into problems. All the configuration assistants complete successfully except the last one "Starting Oracle Management