External Java Tools

I know that you can make external tools available from JDeveloper by adding them with the external tools wizard. If the external tool is written in java, you can set that up as an execution of java.exe with the proper classpath and other command line options.
Considering that JDeveloper is itself written in jave and running in a JVM, is there a way to configure an external tool to just run under the current instance of the JVM?
To be more specific, I would like to set up Axis in JDeveloper, and would like to use the WSDL2Java tool to generate java files in the current project. Maybe this would be better done as a JDeveloper extension, but I am too inexperienced as a java programmer to want to try to upe the Extension SDK.

Funny you should ask about building clients to web services, for that is exactly how I came to want to use Axis. I am building a client to the Microsoft MapPoint Web Service, and started by feeding its WSDL to JDeveloper 9.0.2.5's stub building wizard, and later to JDeveloper 10.1.3 preview edition's JAX-RPC stub building wizard.
The problem is that this web service requires http DIGEST authentication. I know that this is non-standard, but hey, it is Microsoft, they can do what they want. None of the web service client code generated by various JDeveloper versions can do DIGEST authentication; they only do BASIC authentication.
Microsoft's example of how to use the MapPoint Web Service from Java uses AXIS. AXIS can't do DIGEST authentication either, but at least AXIS gives you a place to replace the default classes that make the http connection and transmit and receive the SOAP data. Microsoft's example gives code for such a replacement class that can do the DIGEST authentication and tells you how to configure AXIS to use it.

Similar Messages

  • Data exchange between SAP SCM and an external java tool via JCo

    Hi everybody,
    the situation i am in is the following:
    We are developping a java application for production planning using multi-agent systems. What I am currently working on is an integration concept towards SAP via JCo. I am using a SAP SCM System.
    What i got is the following:
    I got the JCo connection to SCM and I am able to execute BAPIs from Java.
    Now my problem is the following:
    We want to recognize a change in the SCM System, e.g. when someone added a new manufacturing order. What do I have to do for that?
    Do I have to register a JCO.Server as a RFC Destination?
    Do I have to use SCM EventManagement to handle the corresponding events?
    In Java terms, what I want is a EventListener for some events - but neither do I know how the events are created nor how they are transferred to third party systems...
    Anyone with a hint?
    Thanks a lot!
    Greetings
    Jan

    Hi Jan,
    architecturally you will need to determine a point in the SCM application logic to understand that a relevant event has occurred and then issue a notification "message" - in your case it sounds like your system is directly coupled so it wouldn't exactly be a message but an RFC call instead.
    On SCM itself all you need is the RFC-enabled function module interface (an ABAP development), a logical destination and a hook somewhere in the application logic to make the RFC call.
    From a JCo perspective you then just have to implement an "RFC server" that responds to these RFC calls.
    Most difficult part will be to find a suitable hook in the SCM application logic that doesn't modify any delivered SAP code but uses an enhancement technique like a BADI.
    Anything you can share about your planned development? Is this specifically for a customer or are you planning on releasing a product?
    Regards, Harry.

  • Work with result of a select in an external Java Program

    Hi!
    i would like work with a field of a select in a external java program. I give you an example:
    i want copy a table into another table, but i want do a little modification (before insert action) in one parameter via Java class wich parameter is a field in the select.
    Example:
    i've two tables:
    TABLE_BACK (ID, CARACT)
    TABLE_NEW (ID, CARACT)
    and i've a java Method in an external class com.upc.myClass.modifyCaract(String paramS)
    Then, before insert a row in table_new, i want do a transformation in Caract field from table_back. I want do something like this:
    INSERT INTO TABLE_NEW (ID, NAME) ( SELECT ID, <%=com.upc.myClass.modifyCaract('I WANT HERE CARACT FIELD FROM TABLE_BACK') FROM TABLE_BACK )
    is it possible? how can i do it?
    Thanks!!
    Message was edited by:
    valdomir

    Hola Valdomir,
    Que tal estas? Ya ha empezado el calor en Barcelona ? jejejejejejej
    Well, I think to be possible do what you need.
    1) In a procedure step, at source tab query the values, something like:
    select caract as MY_CARACT from TABLE_BACK
    2) at target tab, use the tags "<@ @>" to import the java class (after put it in the correct ODI directory).
    3) at same target tab, after the tag just write (as your example):
    INSERT INTO TABLE_NEW (ID, NAME) ( SELECT ID, <@=com.upc.myClass.modifyCaract('I #MY_CARACT) FROM TABLE_BACK )@>
    I think this will be enough....
    Un saludo,
    Cezar Santos

  • I want to call External Java class from the PL/SQL

    Hi,
    I am using Oracle Apps R11i (11.5.7), I wanted to call external Java class from the PL/SQL. This external Java class is residing in another application server.
    How do I do this.
    I know one way. Develop C routine in Oracle Apps to call external java class and call this C routine from the PL/SQL.
    Is there any simple method available? or any other method?
    Thanks in advance.
    -Venkat

    First of all, this is a Java application you're talking about, right (i.e. it has a main() function)? It's not just a class that you're trying to instantiate is it? If it's an application, you obviously have to start a new virtual machine to run it (rather than using the virtual machine built into the database like stored java). I'm a little leary of your mention of an "application server" as this would more commonly mean that a virtual machine is already over there running with access to this class. In which case, you'd typically interface with SOAP or some other RPC API.
    All that aside, as long as you have physical disc access (through NFS or whatever) to the class file, you could use a java wrapper class with a system call to do this. In fact, there is a thread in just the last day or so on this very forum that has the code to do just that (see " Invoking OS Commands from PL/SQL"). However, it's worth noting that the virtual machine will be running on the database server in this case and not the application server.

  • 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

  • How to use external java files into my project

    Hi all,
    I need your help to import my external java files in to my project.
    The files are in package folder.
    So how to tell the import command with the path of the folder.
    I read also that I can make a jar file and integrate it into the project.
    How can I make jar file.
    Best regards...

    there is one utility in j2se jar and check the option also
    put that jar file in lib folder of yr application folder
    [email protected]

  • Using Arrays in external Java Methods

    Hello,
    I want to write an external Java Method. The method should access an Attribute. The Attribute should store an array of strings (e.g. {"value1", "value2", "..."}).
    Is there a possibility to store a stringarray in an Attribute? How could I access the different values in the external Java Method?
    Thanks for your help.
    Benedikt

    Benedikt,
    I don't think you can.
    But why don't you use a java.util.StringTokenizer object instead ?
    If I look in the workflow db, a value of an attribute is defined as varchar2(4000), so that should give you enough space.
    Grtz,
    Chris.

  • Calling a external Java method from JSP - using Tomcat server

    Hi all,
    I am trying to call a method in an external Java file from my JSP. I am using Tomcat server.
    I have my class within the package package "mypackage" and it is called myclass.class. It has only one static method mymethod() which reads from a file and writes to a file.
    I compiled the java class and I put the class file under webapps/ROOT/web-inf/classes/mypackage/myclass.class
    I am trying to say something like this from my JSP file(which is under webapps/ROOT) :
    <%@ page import = "mypackage.myclass"%>
    <% myclass.mymethod(); %>
    I am not instatiating the class as its a static method.
    This is what I get while accessing my jsp file :
    javax.servlet.ServletException: try to access class mypackage.myclass from class org.apache.jsp.index_005ftest_jsp
    To put my problem in a nutshell, Can someone guide me how to access a method of an external class from a JSP page? I have a bunch of pages doing the same operation so I thought I would have it in a method and call it from every page. Even though I tried to put the file under web-inf/classes, The JSP is not able to see the class.
    Please help.
    Thanks
    -Uday

    I have a situation that is a bit similar. I have successfully used beans for storing methods used in JSPs and used by other methods in the same class as was suggested above. Now I would like to break some methods into another (utility) class since they are lower level and can be used by lots of things. They are for database operations (given a String query and String dbname, it queries and returns ResultSet for example). I want to have them in a separate class for reusability and OOP.
    I am having problems calling those public static methods in the public class from my bean that communicates with the JSP. I can't compile the class that calls the method in the database ops class. I get an error like :
    loginHelper.java:45: cannot find symbol
    symbol : variable sqlHelper
    location: class dbHelperBean.loginHelper
    and when I include the package name in the call I get
    loginHelper.java:45: cannot find symbol
    symbol : class sqlHelper
    location: package dbHelperBean
    That's strange since the package of both classes is dbHelperBean and the class is indeed called sqlHelper. I tried to compile it in the same directory as sqlHelper as well. What am I doing wrong?
    Thanks for any help.

  • Multiple Data Sources and Accessing External Java APIs

    Hi Everyone,
    I have a couple of questions for which I was not able to find satisfactory answers in the forum search, so here they are. I would be really grateful if you can help us out with this.
    1. Accessing two Data Sources in the same report: We have a requirement to access two data sources in the same report, and use the data from one source to run a query on the other source. Our product (OIM) has its own DB. And it integrates with BPEL (another Oracle application) for some functionality. BPEL has its own DB. A few reports need data from both these repositories. For simplicity, consider that we need to join two tables, but one table is in OIM DB and the other is in BPEL DB. I guess such a join is not possible. So to work around it, we would like to run a query against one DB and then use the results to run a query on the other DB, which will basically simulate the join by running two queries.
    Is something like this possible in BIP? If not directly available, can you suggest something which can act as a work around to achieve this?
    2. Calling External Java APIs from BIP: We need to call some external APIs (for achieving Data Security) 'before' we run the queries in BIP. Basically the Java API will specifya set of keys which will have to be used in an 'in' clause. I looked at the section "Building a Data Template" in the BIP User's Guide (http://bipublisher.us.oracle.com/doc/prod_docs/BI_Publisher_10_1_3_3_3/bip.1013/b40017/T421739T434255.htm). As far as I can see, it discusses how to invoke a PL/SQL procedure using <datatrigger> but the usage is not clear to me. Is there any other document that discusses this in detail? Also, I am not sure if it is possible to access Java APIs. Has it been done before? If yes, then can anyone provide some sample code (sample report bits) which I can refer to to get this thing working?
    Also, the data coming from the Java API may not be in the correct format. We may have to do some additional processing (like converting data in a Java Object to something like comma separated list to be plugged into a query). Is that possible? What will be the best approach here?
    Sorry for the detailed post!
    Thanks,
    Jatan

    Yes you should be able to use both - for example using a Flash Variable to pass in the URL of the XML that you want to load.
    FlashVars are only supposed to be passed in on startup and they are defined as part of the OBJECT/EMBED tag for the HTML.
    Actually it was possible to update FlashVars at runtime in Xcelsius 4.5 with certain JavaScript calls but not in Xcelsius 2008 (because Adobe Flex which Xcelsius 2008 is based on does not allow the same mechanism).
    FYI, for those that are interested in Xcelsius 2008 you pass values into/out of Xcelsius at runtime using External Interface and JavaScript instead.
    Regards,
    Matt

  • Need a java tool to get the directory difference

    Hi,
    I'm looking for a tool which is implemented in java that should be able to get the directory difference*. It should also be capable of notifying modified files also. I found a java tool but it only gives the directory difference, not the modified files.(a console program)
    Thanks.

    Hi,
    You can use below script which calculates difference as DD:HH:MM:SS. You can modify the same:
    DECLARE @startTime DATETIME
    DECLARE @endTime DATETIME
    SET @startTime = '2013-11-05 12:20:35'
    SET @endTime = '2013-11-10 01:22:30'
    SELECT [DD:HH:MM:SS] =
    CAST((DATEDIFF(HOUR, @startTime, @endTime) / 24) AS VARCHAR)
    + ':' +
    CAST((DATEDIFF(HOUR, @startTime, @endTime) % 24) AS VARCHAR)
    + ':' +
    CASE WHEN DATEPART(SECOND, @endTime) >= DATEPART(SECOND, @startTime)
    THEN CAST((DATEDIFF(MINUTE, @startTime, @endTime) % 60) AS VARCHAR)
    ELSE
    CAST((DATEDIFF(MINUTE, DATEADD(MINUTE, -1, @endTime), @endTime) % 60)
    AS VARCHAR)
    END
    + ':' + CAST((DATEDIFF(SECOND, @startTime, @endTime) % 60) AS VARCHAR),
    [StringFormat] =
    CAST((DATEDIFF(HOUR , @startTime, @endTime) / 24) AS VARCHAR) +
    ' Days ' +
    CAST((DATEDIFF(HOUR , @startTime, @endTime) % 24) AS VARCHAR) +
    ' Hours ' +
    CASE WHEN DATEPART(SECOND, @endTime) >= DATEPART(SECOND, @startTime)
    THEN CAST((DATEDIFF(MINUTE, @startTime, @endTime) % 60) AS VARCHAR)
    ELSE
    CAST((DATEDIFF(MINUTE, DATEADD(MINUTE, -1, @endTime), @endTime) % 60)
    AS VARCHAR)
    END +
    ' Minutes ' +
    CAST((DATEDIFF(SECOND, @startTime, @endTime) % 60) AS VARCHAR) +
    ' Seconds '
    Reference:
    http://sqlandme.com/2013/12/23/sql-server-calculating-elapsed-time-from-datetime/
    - Vishal
    SqlAndMe.com

  • Designer 6i + 9i: Java tools (Version History etc) do not work in 9i

    1.
    I have installed both Designer 6i (4.2) and 9i in different homes.
    6i works fine, but in the 9i installation the java tools, such as Version History Viewer etc. do not work. The java classes cannot be found.
    Any suggestions?
    2.
    6i R4.2 and 9i seem to work against the same repository version, so I can use 6i for the missing parts. Will this be working still after future patches of 9i?
    I need the combined 6i/9i installation because my laptop is used both for (6i) training and 9i development.

    Hi Peter,
    1) This is most probably caused by your java class path being longer than
    999 characters. We are aware of this problem and it is recorded as a bug.
    Simply reduce the length of your class path to less than 999 characters
    and the Java tools should start OK. The offending Registry variable you
    are looking for is:
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\REPADM61\DEFAULT_JVM_PARAMS_THIN_JDBC
    JVM_CLASSPATH_DEFAULT_THIN_JDBC
    There is an also one or two issues with the JDBC thin drivers used and
    the 'increased sensitivity' of the 9i database tnsnames.ora file content
    and structure. The Release Notes for Designer 6i Release 4.3/9i Designer
    9.0.2.1.0 should more details on this and available workarounds.
    I suggest you look at these and implement the tnsnames.ora workaround at
    least, in order to protect against future connection problems. By the way
    - 8.1.7 works fine with respect to these connection issues.
    2) Please see this post from this forum for more details =>
    Re: Oracle 9i database problem
    Hope this helps.
    Regards,
    Dominic
    Designer Product Management
    Oracle Corp

  • Calling PL/SQL function from external Java class

    I was wondering if I was able to call a pl/sql function from an external java class? If so, would you be able to tell me briefly on how to go about it. I know I can call java methods that are internally stored in the db from pl/sql, but I was hoping I could call pl/sql from external java. Thanks,
    Kelly

    Ok, I made the changes, but I'm now getting the following error:
    Error code = 1403
    Error message = ORA-01403: no data found
    ORA-06512: at "IOBOARD.GETSTATUS", line 6
    ORA-06512: at line 1
    The ora-01403 I don't understand because there is data for the name Kelly.Brace.
    ora-06512 error: at string line string.
    Here's what the code looks like after I made the changes:
    String sql = "{?=call ioboard.GetStatus(?)}";
          // create a Statement object
          myStatement = myConnection.prepareCall( sql );
          myStatement.setString( 1, "Kelly.Brace" );
          myStatement.registerOutParameter(2, java.sql.Types.LONGVARCHAR );
          // create a ResultSet object, and populate it with the
          // result of a SELECT statement
          ResultSet myResultSet = myStatement.executeQuery();
          // retrieve the row from the ResultSet using the
          // next() method
          myResultSet.next();
          // retrieve the user from the row in the ResultSet using the
          // getString() method
          String status = myResultSet.getString(1);
          System.out.println("Hello Kelly, your status is: " + status);
          // close this ResultSet object using the close() method
          myResultSet.close();Here's what the function looks like:
    CREATE OR REPLACE FUNCTION GetStatus( user_name in varchar2)
    RETURN VARCHAR2
    is
    v_status varchar2(10);
    BEGIN
    select iob_location into v_status
    from ioboard.iob_user
    where iob_username = user_name;
      RETURN( v_status);
    END;This works perfectly in the SQL Window:
    select iob_location
    from ioboard.iob_user
    where iob_username = 'Kelly.Brace';

  • External Java Function with a Result Type

    Dear all,
    I have created a workflow process which use a Function Activity of type "External Java" without a result type and it works fine, but i have created another with the result type of boolean (WFSTD_BOOLEAN) and it doesn't work properly. I will explain what is happening.
    I start a process and it stops in that function activity, then the oracle Function Activity Agent executes the class associated to that function and it works fine. Then i review the workflow process and check that the status of the activity is "Deferred". I execute the wf_engine.background process, and then the status of the activity is "Complete" but the result field is blank, thus the process is stopped and did not go through the "True" branch of the process. I have follow the Oracle Workflow and Java Technical White Paper to build the class associated to the function activity, and i return true in the execute method and don't put anything in the errorStack variable.
    The documentation says:
    resultOut If a result type is specified in the Activities properties page for the activity in the Oracle Workflow Builder, this parameter represents the expected result that is returned when the procedure completes.
    Note: Unlike the resultout for a PL/SQL procedure called by a function activity, the resultOut for a Java procedure does not include a status code. In the Java API, only the result type value is required. The status of the activity will be set automatically by the Workflow Engine depending on whether there is a value in the errorStack variable.
    am I doing something wrong? could anyone help me?
    Thanks in advance.

    Hi Allison,
    I've found the solution to the problem. If i set the variable resultOut to "T" or "F" before finnishing the execute method it works.
    I think that you have to set the variable resultOut with the internal value of the lookup type that you are using as the result type of the function activity.
    Bye!

  • External reporting tool (Cognos) to produce customized reports from BPM 5.7

    Can I use external reporting tool (Cognos) to produce customized reports from BPM 5.7? Is it possible to query BPM DB for historical data (not BAM dashboard)?

    Hi Steve,
    From memory, I think you can just use ContactCallDetail and Resource. Just look for calls where originatorType = 1 (for agent) and originatorID = resourceID of the agent. So your where clause would look something like:
    WHERE
    originatorType = 1 AND
    originatorID = resourceID of the agent AND
    LEN(destinationDN) > 7
    Hope that helps.
    Cheers,
    Nathan

  • Use of LORD APIs from external Java application

    We have a need (business scnerio driven) to write an external Java application for Sales Order/Quotation entry. We have recently updated to EHP4 to make use of LORD APIs built by SAP for CRM processes. We are going through published APIs and learning them the hard way (tral and error). We are making progress but slow. Currently we are working through function group ERP_LORD which contains 32 function modules (ERP_LORD_LOAD etc)
    Does anyone know have documentation on basic order entry scnerios and APIs to use and further information on variations of ERP_LORD_SET that may save us some time?
    Any additional information will be appreciated.

    How will they be able to access your application if they aren't users of the system?

Maybe you are looking for