Calling a java function from xquery
Hello,
I'm pretty new to ODSI and xquery, so forgive me if what I'm asking is too trivial, but I need to find a way to call a java function from inside xquery. I know xquery can do this through external functions, but can't find any example on how the query prolog declaration should be, nor how the function should look like. Could someone enlighten me?
Thanks,
Pedro Ivo
You can do this 2 ways that I know of (Mike probably has more ideas too)
1. Register an inversion function:
[How to use an inversion function|http://download.oracle.com/docs/cd/E13167_01/aldsp/docs32/dsp32wiki/Using%20Inverse%20Functions%20to%20Improve%20Query%20Performance.html]
2. Create a physical data service based on a java function. I have used this approach for both custom JDBC database operations and straight Java processing, with pretty good results.
Good luck,
Jeff
Edited by: jhoffmanme on Apr 14, 2010 9:57 AM
Similar Messages
-
Call a Java Function From Abap
Hi, I need to call a java function from ABAP, I have a WAS 640 to deploy the module.
I have found this tutorial...
[ABAP calls Java via RFC|/people/thorsten.franz3/blog/2008/11/21/abap-calls-java-via-rfc-1-introduction]
The problem is that it uses a newer version of WAS and it implements EJB 3.0 wich only works on Java 5, but my WAS has java 1.4.2.
Anyone knows how to adapt this Blog to a WAS 640 version ?
Or Perhaps there is another way of doing this, maybe publishing my function as a web service.
Regards.
Mariano.Why don't you expose your Java functionality as a Web Service and consume it in ABAP program. That should be much easier and the web service can be used in other places as well.
Best regards,
Ritesh Chopra -
Calling a Java Function from PL/SQL
Hi,
I would like to call a Java API from a java class residing on the middle tier ($OA_JAVA)
from the subscription code of a business event. The business event will have a
subscription with java rule function as my Java API. And the business event will be
raised from PL/SQL code using WF_EVENT.RAISE API. I want the Java API to
executed SYNCHRONOUSLY without deferring the event. Can you please provide
pointers to this.
Regards
RameshDocumentation here: http://download-uk.oracle.com/docs/cd/B14117_01/java.101/b10983/datamap.htm#sthref185
says JPublisher can publish records too.
But when I change the example given at http://download-uk.oracle.com/docs/cd/B14117_01/java.101/b10983/datamap.htm#sthref190 as following:
PACKAGE "COMPANY" AS
type emp_rec is record (empno number, ename varchar2(10));
type emp_list is varray(5) of emp_rec;
type factory is record (
name varchar(10),
emps emp_list
function get_factory(p_name varchar) return factory;
END;
then I see <unknown type or type not found> at sql or java files generated. Any ideas? -
Is it possible to call a java function from plsql?
I have a plsql script which loads data in to a table. One of the fields is a notes field. I would like to use advance offerings of java to manipulate the data before inserting. Is there away I can pass the data to a java function and have it return the manipulated data?
Thanks
AaronYou can use java stored procedure to call java function from plsql.
1. Create a java class with a static function(which will be called from plsql).
2. Compile and load the class into database using LOADJAVA command.
3. Create a wrapper stored procedure or function in plsql which calls the above java function.
4. Access this plsql procedure like normal database procedure. This will invoke underlying java function in which you can do all the processing and return result.
Refer this url for help on implementing above steps :
http://otn.oracle.com/tech/java/jsp/pdf/developing_o8i_apps_with_plsql_and_java_twp.pdf
Samples on java stored procedure :
http://otn.oracle.com/sample_code/tech/java/jsp/oracle9ijsp.html
Chandar -
Hi,
I'm having a problem in calling the Java Applet's Function from Visual Basic. First, I'm getting the handle of the Java Applet and components of it using "Document.Applets(n)" which is a HTML function. I'm calling this function from Visual Basic. My code is something like this...
' // Web1 is IE Browser in my Form.
Dim Ap,Comp
Dim Bol as Boolean
Bol = true
Ap = Web1.Document.Applets(0).getWindow() ' \\ Gets the Parent Window.
Ap.setTitle("My Java Applet") ' \\ Sets the Title of the window.
msgbox Ap.getVisibility() ' \\ This will return a Java boolean ( true or false )
Ap.setVisibility(Bol) ' \\ Function Syntax is : void setVisibility(boolean b)
Here in my code , i'm able to call any function that which accepts Integer or String but not boolean. So, i m facing problem with Ap.setVisibility() function. It gives me a "Type mismatch error" while executing it. Can you please tell me a way to do this from Visual Basic !
I'm using Visual Basic 6.0, Windows 2000 , J2SDK 1.4.2_05.
Please help me Friends.
Thanks and Regards,
Srinivas Annam.Hi
I am not sure about this solution. try this
Declare a variable as variant and store the boolean value in that variable and then use in ur method.
Post ur reply in this forum.
bye for now
sat -
Problem while calling java function from html
when i tried to call a java function from html i'm getting an error
object don't support this property.
what could be the reason.
This is my html.
I got this from this forum only.
My applet is accessing the system property "user.home".
I ran it in IE
<DIV id="dvObjectHolder">Applet comes here</DIV>
<br><br>
<script>
if(window.navigator.appName.toLowerCase().indexOf("netscape")!=-1){ // set object for Netscape:
document.getElementById('dvObjectHolder').innerHTML = " <object ID='appletTest1' classid=\"java:test.class\"" +
"height=\"0\" width=\"0\" onError=\"changeObject();\"" +
">" +
"<param name=\"mayscript\" value=\"Y\">" +
"<param name=\"archive\" value=\"sTest.jar\">" +
"</object>";
}else if(window.navigator.appName.toLowerCase().indexOf('internet explorer')!=-1){ //set object for IE
document.getElementById('dvObjectHolder').innerHTML = "<object ID='appletTest1' classid=\"clsid:8AD9C840-044E-11D1-B3E9-00805F499D93\"" +
" height=\"0\" width=\"0\" >" +
" <param name=\"code\" value=\"test.class\" />" +
"<param name=\"archive\" value=\"sTest.jar\">" +
" </object>"
</script>
<LABEL id="lblOutputText">This text will be replaced by the applet</LABEL>
<BR>
<input value="Javascript to java" type=button onClick="document.appletTest1.fromJavaScript()">I tried this example using the repy given to an earlier post.
But its not working with me.
What i did in addition was adding plugin.jar to classpath to import netscape.javascript.*;
Let me add some more details
1) I'll add the stack trace
2) my java progrma
3) batch file to sign the applet.
1) This is the stack trace i don't know whether u will undertand this
load: class test.class not found.
java.lang.ClassNotFoundException: test.class
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: C:\FastranJava\AppletObject\bin\test\class.class (The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 10 more
Exception in thread "Thread-5" java.lang.NullPointerException
at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source)
at sun.plugin.AppletViewer.showAppletException(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2) Java Program
import netscape.javascript.*;
import java.applet.*;
public class test extends Applet
private JSObject win;
private JSObject outputLabel;
private boolean buttonFromJavaClicked=false;
checkJavaScriptEvent evt=new checkJavaScriptEvent();
public void init()
try
evt.start();
win=JSObject.getWindow(this);
outputLabel=(JSObject)win.eval("document.getElementById('lblOutputText')");
outputLabel.setMember("innerHTML", "<center><h1>From Init<br>Your Home directory" + System.getProperty("user.home") + "</h1></center>");
catch(Exception e)
e.printStackTrace();
public void fromJavaScript()
buttonFromJavaClicked=true;
public void fromJavaScript2()
System.out.println("Started Form JavaScript2");
try
String strLbl="<center><h1>From JavaScript<br>Your Homedir:" + System.getProperty("user.home") + "</h1></center>";
outputLabel.setMember("innerHTML", strLbl);
catch(Exception e)
e.printStackTrace();
class checkJavaScriptEvent extends Thread
public void run()
while(true)
if(test.this.buttonFromJavaClicked)
System.out.println("OK buttonfromjava is true");
test.this.buttonFromJavaClicked=false;
fromJavaScript2();
try
Thread.sleep(3000);
catch(Exception e)
e.printStackTrace();
3) Batch file
del *.cer
del *.com
del *.jar
del *.class
javac -classpath ".;C:\Program Files\Java\jre1.5.0_06\lib\plugin.jar" test.java
keytool -genkey -keystore harm.com -keyalg rsa -dname "CN=Harm Meijer, OU=Technology, O=org, L=Amsterdam, ST=, C=NL" -alias harm -validity 3600 -keypass password -storepass password
jar cf0 test.jar *.class
jarsigner -keystore harm.com -storepass password -keypass password -signedjar sTest.jar test.jar harm
del *.class -
How to call java function from PL/sql in oracle applications
I am trying to call a java function from plsql procedure. Can any one explain how to call java function, and in which directory I have to store my java function in oracle applications. Do I need to register that java function from Application developer.
Thanks
Kranthihttp://www.oracle.com/technology/tech/java/jsp/index.html
Good Luck,
Avi. -
Newbie Help: Calling Java function from XSLT
Hi everyone!
I am trying to call a java function from my XSL file. like...
<xsl:stylesheet version="1.0"
xmlns:java="http://xml.apache.org/xslt/java"
xmlns:fn="http://www.my.com/xslt"
exclude-result-prefixes="java fn">
<xsl:variable name="embeddedpic"
select="formData/instance/EmployeePicture" />
<xsl:variable name="pic" select="fn:com.my.utils.ConversionUtils.base64DecodeString($embeddedpic)"/>I am getting this exception in calling the above java function from my XSLT (XalanXPathException: The function number 'http://xml.apache.org/xslt/java:com.my.utils.ConversionUtils.base64DecodeString' is not available.)I have the function lib file in my classpath but still i am getting this error. Any info is highly appreciated.
ThanksTry this.
<?xml version="1.0" ?>
<xsl:transform version="1.0" xmlns:fn="com.my.utils" >
<xsl:variable name="pic" select="fn:ConversionUtils.base64DecodeString($embeddedpic)"/>
etc.
as long as your code is in the classpath it should find it.
Henock. -
JCo Outbound( calling Java Function from ABAP )
HI,
I want to call a JAVA function from ABAP.I have installed the JCo toolkit and included the sapjco.jar file in the classpath of my system.
When i execute the program(Example5.java,provided with sapjco.zip) from the command prompt,it is working fine,the server listens to the calls made from ABAP via RFC destination.
But if i copy the same program in NWDS in a JAVA project,to run it from there as JAVA application,after including the sapjco.jar file in the project JAVA build path,i get the following error,marked by a red cross ,at the head of the program,even before i run it.
<b>This compilation unit indirectly references the missing type com.sap.jdsr.writer.DsrIPassport (typically some required class file is referencing a type outside the classpath)</b>
What changes do i need to make,to run it from NWDS?
I tried to include the sapjcorfc.dll file along with the sapjco.jar in the java build path,but it doesn't help.
Please tell how to solve this issue?
Regards,
Siddharthahello sid,
which jco version are you using?
are you using the same jco lib when running in command
line and in nwds?
if you are, try checking the order of the your classpath.
your jco lib (which you are using in command line) should
come first in order prior to the default libraries in your project.
regards
jo -
How to call external Java code from Animate project?
I am creating a trainer using Animate that needs to interface with an aircraft model written in Java. Is there a way to call external Java functions from Animate?
Thanks!you can import external java files by yepnope
yepnope({nope:[
'your java script file address.js',
],complete: init});
function init() {
codes that work with your js file can be write in here
Zaxist -
Calling Java Function from XSL
I'm trying something I think is fairly simple and keep getting errors during the process. I'm just trying to parse an XML file and call a java method from a simple java program called HelloWorld using an XSL stylesheet.
I get the following error: Error while parsing XSL file (Extension function namespace should start with 'http://www.oracle.com/XSL/Transform/java/'.). Here is my XSL. I know the oracle namespace is not necessary, it was added due to the error I was receiving:
<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:oracle="http://www.oracle.com/XSL/Transform/java/"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:redirect="http://xml.apache.org/xalan/redirect"
xmlns:jfctn="com.raytheon.iis.temp.HelloWorld" exclude-result-prefixes="jfctn"
exclude-element-prefixes="oracle redirect"
version='1.0'>
<xsl:template match="/">
<xsl:value-of select="//title"/>
<xsl:value-of select="//author"/>
<xsl:value-of select = "jfctn:hello()"/>
</xsl:template>
</xsl:stylesheet>
Here is my java file:
public class HelloWorld {
public static String hello() {
return "Hello World";
And here is my simple XML file:
<source>
<title>XSL</title>
<author> John
Smith</author>
</source>
Any advice/ideas would be greatly appreciated. Thanks.
JimmyAfter some trials I've come up with a more specific issue regarding this error. Here is my new code that works on a machine that does not have a file called xmlparserv2.jar (In my stack trace I noticed it referring to the oracle.xml.parser.v2 so I'm assuming this file and path setup that refers to this file is the issue). Unfortunately I have other programs that need this file and setup so I was wondering if anyone knew some alternate setup or workaround to resolve this issue.
The following works fine for me using xalan on a server with the most recent jdk 1.4 setup.
Here is the new XSL code similar to the one listed above. The XML is the same as the previous post.
<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
�xmlns:xalan="http://xml.apache.org/xalan"�
�xmlns:jfctn="xalan://com/raytheon/iis/temp/HelloWorld"
exclude-result-prefixes="jfctn"
�version='1.0'>
<xsl:template match="/">
<xsl:value-of select="//title"/>
<xsl:value-of select="//author"/>
<xsl:value-of select = "jfctn:hello()"/>
</xsl:template>
</xsl:stylesheet>
Here is my transform class
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.net.URL;
import javax.xml.transform.*;
public class SimpleTransform
public SimpleTransform()
public static void main(String args[])
throws TransformerException, TransformerConfigurationException, FileNotFoundException, IOException
TransformerFactory transformerfactory = TransformerFactory.newInstance();
File file = new File("test.xsl");
File file1 = new File("test.xml");
try
URL url = file.toURL();
URL url1 = file1.toURL();
InputStream testXsl = url.openStream();
InputStream testXml = url1.openStream();
Transformer transformer = transformerfactory.newTransformer(new StreamSource(testXsl));
transformer.transform(new StreamSource(testXml), new StreamResult(new FileOutputStream( "test.out")));
System.out.println("************* The result is in test.out *************");
testXsl.close();
testXml.close();
catch(Exception exception)
exception.printStackTrace();
} -
Calling JAVA Functions from XSLT
Hi,
I am trying to invoke a Java Extension Function from a XSLT. I added both the class file and the XSLT file to a folder, then zipped the entire folder and uploaded into the Archive for my Interface MApping.
The CLASS gets loaded but the runtime engine gives an error when calling the JAVA Function.
Here is what it says:
Creating mapping sequence with 2 steps. --- Creating Java mapping Deliveries/stringHandler --- Creating mapping sequence with 2 steps. --- Creating XSLT mapping Deliveries/test1 --- Using MappingResolver with context URL /sapmnt/XD1/global/xi/mapping/http%3A%2F%2Fwolterskluwer%2Ecom%2Fxi%2F wk_midas_deliveries%2Ftest/cd2e6820267511d9cb52c3c5143c3524/ --- Loaded class Deliveries.stringHandler --- com.sap.aii.ibrun.server.map.MappingRuntimeException: at com.sap.aii.ibrun.server.map.MappingRuntimeException.code_STYLESHEET_OR_CLASS_NOT_FOUND(MappingRuntimeException.java:91) at com.sap.aii.ibrun.server.map.RUMappingJava.instantiate(RUMappingJava.java:168) at com.sap.aii.ibrun.server.map.RUMappingJava.execute(RUMappingJava.java:41) at com.sap.aii.ibrun.server.map.RUSequence.execute(RUSequence.java:50) at com.sap.aii.ibrun.server.map.RURunner.run(RURunner.java:58) at com.sap.aii.ibrun.server.map.RUManager.run(RUManager.java:66) at com.sap.aii.ibrun.sbeans.map.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.map.MappingServiceImpl.processFunction(MappingServiceImpl.java:83) at com.sap.aii.ibrun.sbeans.map.XMappingServiceObjectImpl0.processFunction(XMappingServiceObjectImpl0.java:24) at com.sap.aii.ibrun.sbeans.map.MappingServiceKey.processFunction(MappingServiceKey.java:10) at java.lang.reflect.Method.invoke(Native Method) at com.inqmy.services.rfcengine.RFCDefaultRequestHandler.invokeBean(RFCDefaultRequestHandler.java:83) at com.inqmy.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:50) at com.inqmy.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java:69) at com.sap.mw.jco.JCO$Server.dispatchRequest(Unknown Source) at com.sap.mw.jco.rfc.MiddlewareRFC$Server.nativeListen(Native Method) at com.sap.mw.jco.rfc.MiddlewareRFC$Server.listen(Unknown Source) at com.sap.mw.jco.JCO$Server.listen(Unknown Source) at com.sap.mw.jco.JCO$Server.run(Unknown Source) at java.lang.Thread.run(Thread.java:513) --
Any help or suggestions to solve this problem would be greatly appreciated.
Thanks
AHi,
Thanks for looking into this.
1. I have verified that the path in the zip file is correct i.e com/sap/test/stringHandler.class
2. test1.xsl is in the root folder i.e No path.
3. I see the Message in the stacktrace saying "Loaded Class com/sap/test/stringHandler.class " but after that I get a runtime MApping Error and it says "CLASS_NOT_FOUND".
Can you please tell me why is this happening?
Thanks
A -
Can I call a C function from Java (using JNI) ??
hello,
I need to call one C function from remote device and get its return value(o/p) (for my application it is device SSID ) and display in the client PC.
Is it possible in java without using SNMP connction?.
please give me idea about it.
I need this information as soon as possible.
Thank you.see JNI...
basically declare a native method in your java class, then run javah on the class thus generating a *.h file. Then implement the c/c++ function. Compile the c/c++ part as a shared library, and make sure its accessible from your LD_LIBRARY_PATH env variable.
Go through the steps in the JNI docs, and things shoulde be fine... hopefully ;) -
How to call a php function from java...
helllo fellow java developers!
Im trying to figure out how I can call a php function from my java code.
I know it sounds a bit unintiutive, seeing how java is a rich programming language, BUT java simply cannot do the task that the php script can do. It simply acts differently.
So I am trying to call a php function, that returns a string object, and capture that string object....
is this possible?
something like....
String strMyString = phpFunction( strVariable )
???????/ any ideaS?idea #1 - come up with a better plan that doesn't involve invoking php from java.
Give one example of something php can do that java can't.
idea #2 - forget java, and just write it in php.
Involving multiple frameworks/languages/runtime environments is a recipe for an overcomplicated solution that will be impossible to maintain.
I'd say keep it simple and stupid, and stick with one language.
If you're still hooked on the idea, maybe try [this link|http://www.infoq.com/news/2007/10/php-java-stack] -
Call Java function from multithreaded VC++ application
Friends, I want to call Java function from two threads of a single VC++ application. I can call it from single thread but when I call it from another thread also, JNI_CreateJavaVM() replies with an error.
Please......help meYour posting is ambiguous. My impression is that you have two threads, both trying to create a java VM?
Maybe you are looking for
-
Since upgrading to FF 4.0 when I click on an email link it never opens to that link but to a blank FF window. Would FF 5.0 fix that or what do I do? I'm afraid to use 5.0 because 4.0 caused a multitude of problems for me, not all fixable. Please send
-
I am unable to open firefox 4 properly without an error! HELP!
This is the message I now get everytime I try to open Firefox 4 broswer: "Could not initialize the application's security component. The most likely cause is problems with files in your application's profile directory. Please check that this director
-
Blue sceen appeared after low disk space warning
Hi Everyone, just seen a message stating a low disk space on my Mac pro bought last November and tried plugging in an external hard drive to remove some pictures to free up some space but it seems that the computer did not have enough space left to s
-
FM for changing system status in Service Notification
Hi all, I have a tough situation here. To change the system status in service notification, the system use "IQS4_CHANGE_STAT_NOTIFICATION". CALL FUNCTION 'IQS4_CHANGE_STAT_NOTIFICATION' EXPORTING i_qmnum = i_vrgng
-
Wbs element can no longer be shifted error while creating wbs
i am trying to create wbs with bapi_project_maintain, i am facing an error with message no 418 WBS element 1899-CAP-10-100-001-1507 can no longer be shifted