Java proxy from BAPI

I am new to java development and I want to generate a java proxy for a correspong BAPI. What is the process to do it using NET weaver.
what are the neccessary jars that are required to implement the functions

Hi Chaitanya,
You can use the SAP Enterrpise Connector from NWDS. You can find the doc here: http://help.sap.com/saphelp_nw70/helpdata/en/11/e2bc3d9ecc6b3be10000000a114084/frameset.htm
But you may also consider other options such as external services with CAF.

Similar Messages

  • Call Client Java Proxy from Server Java Proxy

    Hi Gurus!!
    I'm trying to call a Client Java Proxy from a Server Java Proxy.
    Is possible to do this? I think must be possible.
    I have called this Client Java Proxy from another application, and run ok.
    I have tried to call it following the Guide to call Java Client Proxies:
                    es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome queryOutHome = null;
                    es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeRemote queryOutRemote = null;                     
                    try {
                         //      Get naming context
                         Properties p = new Properties();
                         p.put(
                              Context.INITIAL_CONTEXT_FACTORY,
                              "com.sap.engine.services.jndi.InitialContextFactoryImpl");
                         p.put(Context.PROVIDER_URL, "myurl:50104");
                         p.put(Context.SECURITY_PRINCIPAL, "MMIGUEZ");
                         p.put(Context.SECURITY_CREDENTIALS, mypasswrod);
                         Context ctx = new InitialContext(p);
                         Object ref = ctx.lookup("RobotOut");
                         //      Look up jndi name of proxy bean
                        try {
                         queryOutHome =
                              (MIRobotOut_PortTypeHome) PortableRemoteObject.narrow(
                                   ref,
                                   MIRobotOut_PortTypeHome.class);
                        } catch (Exception e) {
                             throw new RuntimeException(e + "1");
                         //        Get Remote interface
                         queryOutRemote = queryOutHome.create();
                    } catch (Exception e) {
                        throw new RuntimeException(e + "2");
    but I get this error
    "com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome"
    es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome is the corresponding PortTypeHome to the Client Java Proxy.
    I have tried to call too calling directly from the server Java Proxy to the method correcponding to the Client Java Proxy. The error I get is:
    "com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTRobot_Type: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTRobot_Type"
    Tha call to the client is:
    es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortType clase = null;
    es.navantia.xi.mm.dispositivosRobotizadosKasto.DTRobot_Type client_req = null;
    es.navantia.xi.mm.dispositivosRobotizadosKasto.DTRobotResponse_Type client_res = null;
    client_res = clase.mIRobotOut(client_req);
    Please, any help will be useful.
    Thanks and regards,
    Manuel Míguez.

    Hi,
    Now I get another error message:
    com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/MITextoOut_PortTypeRemote: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/MITextoOut_PortTypeRemote
    Now, my source is:
      MITextoOut_PortTypeHome queryOutHome = null;
      MITextoOut_PortTypeRemote queryOutRemote = null;
      try {
    //     Get naming context
    Context ctx = new InitialContext();
    //     Look up the EJB name in the environment
    Object ref = ctx.lookup("java:comp/env/ejb/TextoOut");
    // Object ref = ctx.lookup("java:comp/env/ejb/MITextoOut_PortTypeBean");
    //     Cast to Home interface
         queryOutHome = (MITextoOut_PortTypeHome)
    PortableRemoteObject.narrow(ref,
    MITextoOut_PortTypeHome.class);
    //     Get Remote interface
    queryOutRemote = queryOutHome.create();
    } catch (Exception e) {
    System.out.println("RemoteException occurred: "+e.getMessage());
    e.printStackTrace();
    //return;
    try {
          queryOutRemote.$messageSpecifier();
    } catch (RemoteException e2) {
          // TODO Auto-generated catch block
          e2.printStackTrace();
    DTTexto_Type Texto_type = new DTTexto_Type();
    Texto_type.setTexto(req_texto);
    DTTextoResponse_Type Texto_response = new DTTextoResponse_Type();
    try {
         Texto_response = queryOutRemote.mITextoOut(Texto_type);
    } catch (SystemFaultException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
    } catch (ApplicationFaultException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
    } catch (RemoteException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
    I have tryed removing queryOutRemote.$messageSpecifier() and I get the error:
    com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTTexto_Type: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTTexto_Type
    Somebody knows what could be the cause of these errors?
    Thanks and regards,
    Manuel.

  • How to Delete a Java Proxy from Visual Admin

    Hi Experts,
    I have created a JAVA Proxy and deplyed on the J2EE server. I use the Visual Admin to check if it is deployed or not. Now because of the tests there are so many proxies on the J2EE server, I want to delete some (that are not being used). But in Visual Admin I do not see an option to delet the proxy.
    Can anyone help me how to delet the proxy.
    Thanks
    SB

    Used SDM to delete them.

  • Server java proxy in PI 7.1

    Hi ,
    I am implementing Java server Proxy in PI 7.1.  Got below files when generated  java proxy from ESR. can you tell me in which file I have to write the code. Please share if you have sample code.
    ActiveDirectoryListOIn_PortType.java
    ActiveDirectoryListOIn_PortTypeBean.java
    ActiveDirectoryListOIn_PortTypeHome.java
    ActiveDirectoryListOIn_PortTypeLocal.java
    ActiveDirectoryListOIn_PortTypeLocalHome.java
    ActiveDirectoryListOIn_PortTypeRemote.java
    DepartmentResponseType_Type.java
    DepartmentType_Type.java
    Thanks,
    Madhu Pusala

    Hi Bhasker,
    That  document  for XI 3.0 or 7.0.  We don't write the coode XXXBean.java.  we have to impliment the code in ActiveDirectoryListOIn_PortTypeImpl.template. But this file not created when I genarate the java proxy from ESR.
    Pelase let me know if you find anything.
    Thanks,
    Madhu Pusala

  • How to generate java proxy in PI 7.1

    Hi All,
    How do I generate java proxy in PI 7.1
    I am unable to see the "Generate Java Proxy" in the Tools menu in the Integration Builder
    Edited by: Piyush Mathur SAP on Apr 15, 2010 11:14 AM
    Edited by: Piyush Mathur SAP on Apr 15, 2010 11:14 AM

    hi ,
    As mentioned in the Question, I am unable to find the "Java Proxy Generattion" link in the Int builder.
    Also the help doc says:
    Java proxy generation is no longer supported in subsequent releases. For new developments or when making significant changes to a service interface, use Java proxy generation in SAP NetWeaver Studio instead. More information: Creating Outside-In Web Services, SAP NetWeaver Developer Studio.
    Does that mean that I can no longer generate java proxy from Int builder?
    regards,
    Piyush

  • Java Proxy Generation not working - Support for Parallel Processing

    Hi Everyone,
    As per SAP Note 1230721 - Java Proxy Generation - Support for Parallel Processing, when we generate a java proxy from an interface we are supposed to get 2 archives (one for serial processing and another suffixed with "PARALLEL" for parallel processing of jaav proxies in JPR).
    https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1230721
    We are on the correct patch level as per the Note, however when we generate java proxy from the IR for an outbound interface, it genrates only 1 zip archive (whose name we ourselves provide in the craete new archive section). This does not enable the parallel processsing of the messages in JPR.
    Could you please help me in this issue, and guide as to how archives can be generated for parallel processing.
    Thanks & Regards,
    Rosie Sasidharan.

    Hi,
    Thanks a lot for your reply, Prateek.
    I have already checked SAP Note 1142580 - "Java Proxy is not processing messages in parallel" where they ask to modify the ejb-jar.xml. However, on performing the change in ejb-jar.xml and while building the EAR, I get the following error:
    Error! The state of the source cache is INCONSISTENT for at least one of the request DCs. The build might produce incorrect results.
    Then, on going through the SAP Note 1142580 again, I realised that the SAP Note 1230721 also should be looked onto which will be needed for generating the Java proxy from Message Interfaces in IR for parallel processing.
    Kindly help me if any of you have worked on such a scenario.
    Thanks in advance,
    Regards,
    Rosie Sasidharan.

  • De-register the java proxy

    Hi Frnds,
    Can you please tell me the process for de-register the java proxy from the server.
    Thanks,
    Raj

    Hi Ravi,
    Thanks for your response,
    I got my solution:
    http://<server>:<port>/ProxyServer  -
    > We will get all the options we can use with it.
    And for unregister
    http://<Host>:<Port>/ProxyServer/unregister?ns=<Namespace>&interface=<MessageInterface>&bean=<JNDI_Name>&method=<MethodName>
    Thanks,
    Raj

  • Client Java Proxy

    Hi,
    I have a Java Proxy to BAPI scenario.
    On the sender side I have "ExchangeRates_Out" Outbound Service Interface. I have created a client java proxy for this and deployed it.
    I dont know how to test this proxy or run the interface end to end.
    Please help.
    Thanks,
    Aravind

    Check some links on proxies.
    Concepts and examples for Proxy, Abap Client Proxy and Abap server Proxy
    JAVA Proxies:
    Asynchronous inbpund java Proxies
    /people/prasad.ulagappan2/blog/2005/06/27/asynchronous-inbound-java-proxy
    More on Java Proxy-
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7d4db211-0d01-0010-1e8e-9b07fc2113ab
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/a068cf2f-0401-0010-2aa9-f5ae4b2096f9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f272165e-0401-0010-b4a1-e7eb8903501d
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a068cf2f-0401-0010-2aa9-f5ae4b2096f9
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f272165e-0401-0010-b4a1-e7eb8903501d
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    SAP Exchange Infrastructure 3.0: Java Proxy Runtime 3.0 - J2EE Integration
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/30572c6a-d311-2a10-99ab-f646ec3b5b12
    How to Work with Java Proxies
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d06315a6-e66e-2910-039c-ba8bbbd23702
    Java Proxies in XI
    https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=java+proxy&adv=false&sortby=cm_rnd_rankvalue#
    Java Proxies in XI
    https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=java+proxy&adv=false&sortby=cm_rnd_rankvalue#
    SAP Network Blog: Pre requisites for Client Java Proxies
    /people/yugapreetha.t/blog/2007/12/03/pre-requisites-for-client-java-proxies

  • How to pass username/password to BPEL web service from java proxy?

    Hi all,
    Environment : SOA Suite 11g
    I am using basic http authentication in my SOA services using "oracle/wss_http_token_client_policy" policy. Now i need to invoke these SOA web services from a java proxy.
    Please let me know how this can be done.
    Thanks in advance

    Have you tried the below posts ?
    BPEL to invoke Webservice secured with HTTP Basic authentication
    Invoke a BPEL process using HTTP Basic Authentication
    http://docs.oracle.com/cd/E21764_01/web.1111/e13713/owsm_appendix.htm#CHDBAHBI
    Thanks,
    Vijay

  • Unable to invoke WebLogic 8.1 sp2 web service from a java proxy client...

    I am not able to invoke a web service deployed on WebLogic 8.1 SP2 via a client using the proxy jar provided by WebLogic's JWS > Overview > Generate Java Proxy tool.
    I am getting a java.net.ConnectException.
    Both the client and the WebService are on the same server.
    Thanks!!
    Inder./

    Please see the instructions below. If this does not help, please open a case with customer support and tell them it may be related to CR235479
    DESCRIPTION:
    When a platform domain is created, the admin server can be started without
    any issues and a managed server can also be started without any errors if
    using startManagedWebLogic.sh. But when a managed server is started using the
    nodemanager, the managed server fails to start with the following error.
    The WebLogic Server did not start up properly.
    java.lang.NoClassDefFoundError: com/bea/wsrp/util/debug/Debug
    (Complete stack trace with be added as a note)
    The reason for this is that:
    startWebLogic.sh(cmd) and startManagedWebLogic.sh(cmd) for platform domains
    call <User domain>/setDomainEnv.sh which includes all the jars necessary for
    a platform domain in the CLASSPATH.
    Whereas startNodeManager.sh calls <WL_HOME>/common/bin/commEnv.sh, which is
    the same for both platform and server installations of weblogic and has only
    weblogic.jar in the CLASSPATH.
    Looking at historical cases, the steps to start NodeManager successfully in a
    platform domain are:
    1.
    a. Copy admin server classpath (from <user Domain>/startWebLogic.sh) to
    that of all managed servers in the 'Remote Start' tab of the WLS Console
    OR
    b. Copy admin server classpath to <WL_HOME>/server/bin/startNodeManager.sh
    (If the same nodemanager is used to manage server domain servers and platform
    domain servers, will there be any issue with this approach??)
    2. Copy the wsrpKeystore.jks file from your domain directory to the
    nodemanager directory (the parent of the directory where all the server
    directories are replicated in the node manager. By default: <WL
    HOME>/common/nodemanager)
    But these steps are not publicly documented in edocs.
    CONFIGURATION:
    Weblogic Platform Domain 8.1 (all service packs)
    WORKAROUND:
    Steps 1 and 2 above.

  • Positive Application Acknowledgement from Java Proxy

    Is it possible to send positive application acknowledgmenet from Java Proxy Server?
    There is ApplicationFaultException that transforms into negative ack.

    Hi Sergey,
    Please go thru this..
    http://help.sap.com/saphelp_nw04/helpdata/en/55/65c844539349e9b1450581ab44a5e6/frameset.htm
    Hope this helpsyou..
    cheers,
    Prashanth

  • Can't transfer date type from java proxy to XI

    I 'm using Java proxy send message to XI&#12290;
    but some element for Date type didn't transfered to XI.
    XI 3.0
    I have tried  notes:719010.

    I have the same exact problem after more than year with no problem... Please help meI didn't install new firmware since I have the player I have the .40 version?thanks

  • Problem with Java Proxy and Socket Connection

    Hi Gurus!!
    I have developed a Java Proxy that connects via socket with a Server Socket application. This Server Socket application accepts more than one connection at the same time.
    When I connect the first time from my Java Proxy, the connection is correctly established. When the first connection opened, if a try a second connection, this is not established.
    I use "new Socket(SocketServer,SocketPort);" to open the connection.
    I think that all time the Java Proxy is trying to open the same connection, and this is a problem.
    Is there a way to indicate to the server that is a new connection and that the existing connections remain?
    Anybody could help me, please?
    Thanks and regards,
    Manuel Míguez.

    Sorry!!!!i must give you more information.
    The error which i have when i push the submit button is
    HTTP Status 404 -
    type Status report
    message
    descriptionThe requested resource () is not available.
    GlassFish Server Open Source Edition 3.0.1
    My thought is that the error is in this line
    String connectionURL = "jdbc:mysql://localhost/mybooking";in mysql when i write this code then the table opens with no problems:
    mysql>show databases;
    mysql>usebooking;
    mysql>showtables;
    mysql>describe booking;Furthermore i have added in my web application the library mysql JDBC driver my-sql-connector-java-5.1.6.bin.jar
    Edited by: 813355 on Nov 22, 2010 1:50 AM
    Edited by: 813355 on Nov 22, 2010 2:00 AM

  • Java Proxy Runtime:  failure to locate proxy bean on inbound call

    Hello gurus of the SDN,
    I have been trying to get an inbound Java Proxy scenario to work in XI 3.0 but have not been able to get the JPR to recognize my generated and deployed java code.  My scenario is set up to call the java proxies generated from a message interface based on the MATMAS Idoc.  I successfully deployed the generated java proxies on the same host box as is running the XI instance.  The objects are named as follows
    Message interface on XI = Inbound_MATMAS04
    Generated proxy bean = Inbound_MATMAS04_PortTypeBean
    Implementing class = InboundMATMAS04_PortTypeImpl
    Implementing method = inboundMATMAS04
    I used the JPR transport servlet to register the interface and implementing class but am not sure if I did this correctly.  I used the following entry in my web browser:
    http://nadcp786:50000/ProxyServer/register?
    ns=urn:xiTrainingLabs:groupXX:SAP&
    interface=InboundMATMAS04&
    bean=InboundMATMAS04_PortTypeImpl&
    method=inboundMATMAS04
    I also tried using the localejb/ prefix for the bean name in the above step since the code is co-located.  When I trigger the scenario, the Idoc info is passed into XI and the Java Proxy Runtime is called, but I get the following error response back in the SOAP header:
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="PARSING">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Cannot locate proxy bean InboundMATMAS04_PortTypeImpl: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Cannot locate proxy bean InboundMATMAS04_PortTypeImpl</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Finally, appended at the end of this post is the audit log of the messaging system showing that the JPR is called but without being able to locate the bean.  I think I am missing a configuration step somewhere, but can’t figure out what it is!!  Can anyone help me? 
    Many thanks in advance.
    Regards,
    Nick Simon
    Time Stamp     Status     Description
    2004-10-25 19:47:32     Success     The message was successfully received by the messaging system. Profile: XI URL: http://nadcp786.bcsdc.lexington.ibm.com:50000/MessagingSystem/receive/JPR/XI
    2004-10-25 19:47:32     Success     Using connection JPR. Trying to put the message into the receive queue.
    2004-10-25 19:47:32     Success     The message was successfully retrieved from the receive queue.
    2004-10-25 19:47:32     Success     The message status set to DLNG.
    2004-10-25 19:47:32     Success     Java proxy runtime (JPR) accepted the message
    2004-10-25 19:47:34     Error     JPR could not process the message. Reason: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl
    2004-10-25 19:47:34     Error     Delivery of the message to the application using connection JPR failed, due to: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl.
    2004-10-25 19:47:34     Error     The message status set to FAIL.
    2004-10-25 19:47:34     Error     Asynchronous error detected: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl. Trying to report it.
    2004-10-25 19:47:34     Error     Asynchronous error reported.
    Message was edited by: Nicholas Simon

    Hi
    How do you determine the JNDI naming of the a EJB?
    I have following entry in JNDI directory in the root
    Object Name FlightQueryIn
    Class Name javax.naming.Reference
    Context Name 
    Object Value Reference Class Name:
    Type: clientAppName
    Content: sap.com/JavaProxyEAR
    Type: interfaceType
    Content: remote
    Type: home
    Content: com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundHome4
    Type: ejb-link
    Content: FlightSeatAvailabilityQueryIn_PortTypeBean
    Type: jndi-name
    Content: FlightQueryIn
    Type: remote
    Content: com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundRemote4
    I tried to register the bean with JPR using:
    http://ctsapxid01:50100/ProxyServer/register?ns=http://sap.com/xi/XI/Demo/Airline&interface=FlightSeatAvailabilityQuery_In&bean=FlightQueryIn&method=flightSeatAvailabilityQueryIn
    I followed the following blog
    http://wiki.sdn.sap.com/wiki/display/Java/JavaProxyChangesinPI7.1fromPI7.0
    Thanks,
    Chris

  • Problem in creating a java proxy for PHP web service

    This is a problem in generating a java proxy for a PHP webservice.
    I have a PHP service running on Wamp Server and also a PHP client which is able to call the service.
    The WSDL for the PHP web service is also generated .
    I am trying to create a java proxy using the jdev (10.1.3.0.3) from the wsdl file.
    The wsdl generated by the php program is
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:hellowsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:hellowsdl">
    <types>
    <xsd:schema targetNamespace="urn:hellowsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="urn:hellowsdl#hello" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>After making following changes to the wsdl program, I tried to generate java proxy.
    <definitions name="hellowsdl"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:si="http://soapinterop.org/xsd" xmlns:tns="http://localhost/mywork/hellowsdl.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/mywork/myphpwsdl.wsdll">
    <types>
    <xsd:schema targetNamespace="http://localhost/mywork/hellowsdl.wsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>This is how the java stub file looks like:
    public class HellowsdlBinding_Stub
        extends oracle.j2ee.ws.client.StubBase
        implements demo.mypackage.HellowsdlPortType {
         *  public constructor
        public HellowsdlBinding_Stub(HandlerChain handlerChain) {
            super(handlerChain);
            _setProperty(ENDPOINT_ADDRESS_PROPERTY, "http://localhost/mywork/hellowsdl.php");
            setSoapVersion(SOAPVersion.SOAP_11);
            setServiceName( new QName("http://localhost/mywork/hellowsdl","hellowsdl"));
            setPortName( new QName("http://localhost/mywork/hellowsdl","hellowsdlPort"));
         *  implementation of hello
        public java.lang.String hello(java.lang.String name)
            throws java.rmi.RemoteException {
            StreamingSenderState _state = null;
            try {
                _state = _start(_handlerChain);
                if (_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS) != null) {
                    _state.getMessageContext().getMessage().setProperty("DimeEncode",_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS));
                InternalSOAPMessage _request = _state.getRequest();
                _request.setOperationCode(hello_OPCODE);
                _state.getMessageContext().setProperty("oracle.j2ee.ws.mgmt.interceptor.operation-qname",new QName("","hello"));
                demo.mypackage.runtime.HellowsdlBinding_hello_ReqS _myHellowsdlBinding_hello_ReqS = new demo.mypackage.runtime.HellowsdlBinding_hello_ReqS();
            _myHellowsdlBinding_hello_ReqS.setName(name);
            SOAPBlockInfo _bodyBlock = new SOAPBlockInfo(ns1_hello_hello_QNAME);
            _bodyBlock.setValue(_myHellowsdlBinding_hello_ReqS);
            _bodyBlock.setSerializer(myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer);
            _request.setBody(_bodyBlock);
            _state.getMessageContext().setProperty("http.soap.action", "http://localhost/mywork/hellowsdl");
            _send((String) _getProperty(ENDPOINT_ADDRESS_PROPERTY), _state);
            demo.mypackage.runtime.HellowsdlBinding_hello_RespS _myHellowsdlBinding_hello_RespS = null;
            Object _responseObj = _state.getResponse().getBody().getValue();
            if (_responseObj instanceof SOAPDeserializationState) {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)((SOAPDeserializationState)_responseObj).getInstance();
            } else {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)_responseObj;
            return _myHellowsdlBinding_hello_RespS.get_return();
        } catch (RemoteException e) {
            // let this one through unchanged
            throw e;
        } catch (JAXRPCException e) {
            throw new RemoteException(e.getMessage(), e);
        } catch (Exception e) {
            if (e instanceof RuntimeException) {
                throw (RuntimeException)e;
            } else {
                throw new RemoteException(e.getMessage(), e);
    *  this method deserializes the request/response structure in the body
    protected void _readFirstBodyElement(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState  state) throws Exception {
        int opcode = state.getRequest().getOperationCode();
        switch (opcode) {
            case hello_OPCODE:
                _deserialize_hello(bodyReader, deserializationContext, state);
                break;
            default:
                throw new SenderException("sender.response.unrecognizedOperation", Integer.toString(opcode));
    * This method deserializes the body of the hello operation.
    private void _deserialize_hello(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
        try {
            Object myHellowsdlBinding_hello_RespSObj =
                myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer.deserialize(ns1_hello_helloResponse_QNAME,
                    bodyReader, deserializationContext);
            SOAPBlockInfo bodyBlock = new SOAPBlockInfo(ns1_hello_helloResponse_QNAME);
            bodyBlock.setValue(myHellowsdlBinding_hello_RespSObj);
            state.getResponse().setBody(bodyBlock);
        } catch (DeserializationException e) {
            if (e.getSoapFaultSubCodeType() == JAXRPCExceptionBase.FAULT_CODE_NONE && e.getSoapFaultCodeType() != JAXRPCExceptionBase.FAULT_CODE_DATA_ENCODING_UNKNOWN) {
                e.setSoapFaultSubCodeType(JAXRPCExceptionBase.FAULT_CODE_BAD_ARGUMENTS);
            throw e;
    public String _getEncodingStyle() {
        return SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding();
    public void _setEncodingStyle(String encodingStyle) {
        throw new UnsupportedOperationException("cannot set encoding style");
    public ClientTransport getClientTransport() {
        return super._getTransport();
    * This method returns an array containing (prefix, nsURI) pairs.
    protected String[] _getNamespaceDeclarations() {
        return myNamespace_declarations;
    * This method returns an array containing the names of the headers we understand.
    public QName[] _getUnderstoodHeaders() {
        return understoodHeaderNames;
    * This method handles the case of an empty SOAP body.
    protected void _handleEmptyBody(XMLReader reader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
    public void _initialize(InternalTypeMappingRegistry registry) throws Exception {
        super._initialize(registry);
        myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_ReqS.class, ns1_hello_TYPE_QNAME);
        myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_RespS.class, ns1_helloResponse_TYPE_QNAME);
    private static final QName _portName = new QName("http://localhost/mywork/hellowsdl", "hellowsdlPort");
    private static final int hello_OPCODE = 0;
    private static final QName ns1_hello_hello_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private static final QName ns1_hello_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private CombinedSerializer myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer;
    private static final QName ns1_hello_helloResponse_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private static final QName ns1_helloResponse_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private CombinedSerializer myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer;
    private static final String[] myNamespace_declarations =
                                        new String[] {
                                            "ns0", "http://localhost/mywork/hellowsdl"
    private static final QName[] understoodHeaderNames = new QName[] {  };
    }The errors that are produced are-
    java.rmi.RemoteException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found
    Kindly help to resolve this.
    Thanks.

    This is a problem in generating a java proxy for a PHP webservice.
    I have a PHP service running on Wamp Server and also a PHP client which is able to call the service.
    The WSDL for the PHP web service is also generated .
    I am trying to create a java proxy using the jdev (10.1.3.0.3) from the wsdl file.
    The wsdl generated by the php program is
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:hellowsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:hellowsdl">
    <types>
    <xsd:schema targetNamespace="urn:hellowsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="urn:hellowsdl#hello" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>After making following changes to the wsdl program, I tried to generate java proxy.
    <definitions name="hellowsdl"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:si="http://soapinterop.org/xsd" xmlns:tns="http://localhost/mywork/hellowsdl.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/mywork/myphpwsdl.wsdll">
    <types>
    <xsd:schema targetNamespace="http://localhost/mywork/hellowsdl.wsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>This is how the java stub file looks like:
    public class HellowsdlBinding_Stub
        extends oracle.j2ee.ws.client.StubBase
        implements demo.mypackage.HellowsdlPortType {
         *  public constructor
        public HellowsdlBinding_Stub(HandlerChain handlerChain) {
            super(handlerChain);
            _setProperty(ENDPOINT_ADDRESS_PROPERTY, "http://localhost/mywork/hellowsdl.php");
            setSoapVersion(SOAPVersion.SOAP_11);
            setServiceName( new QName("http://localhost/mywork/hellowsdl","hellowsdl"));
            setPortName( new QName("http://localhost/mywork/hellowsdl","hellowsdlPort"));
         *  implementation of hello
        public java.lang.String hello(java.lang.String name)
            throws java.rmi.RemoteException {
            StreamingSenderState _state = null;
            try {
                _state = _start(_handlerChain);
                if (_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS) != null) {
                    _state.getMessageContext().getMessage().setProperty("DimeEncode",_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS));
                InternalSOAPMessage _request = _state.getRequest();
                _request.setOperationCode(hello_OPCODE);
                _state.getMessageContext().setProperty("oracle.j2ee.ws.mgmt.interceptor.operation-qname",new QName("","hello"));
                demo.mypackage.runtime.HellowsdlBinding_hello_ReqS _myHellowsdlBinding_hello_ReqS = new demo.mypackage.runtime.HellowsdlBinding_hello_ReqS();
            _myHellowsdlBinding_hello_ReqS.setName(name);
            SOAPBlockInfo _bodyBlock = new SOAPBlockInfo(ns1_hello_hello_QNAME);
            _bodyBlock.setValue(_myHellowsdlBinding_hello_ReqS);
            _bodyBlock.setSerializer(myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer);
            _request.setBody(_bodyBlock);
            _state.getMessageContext().setProperty("http.soap.action", "http://localhost/mywork/hellowsdl");
            _send((String) _getProperty(ENDPOINT_ADDRESS_PROPERTY), _state);
            demo.mypackage.runtime.HellowsdlBinding_hello_RespS _myHellowsdlBinding_hello_RespS = null;
            Object _responseObj = _state.getResponse().getBody().getValue();
            if (_responseObj instanceof SOAPDeserializationState) {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)((SOAPDeserializationState)_responseObj).getInstance();
            } else {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)_responseObj;
            return _myHellowsdlBinding_hello_RespS.get_return();
        } catch (RemoteException e) {
            // let this one through unchanged
            throw e;
        } catch (JAXRPCException e) {
            throw new RemoteException(e.getMessage(), e);
        } catch (Exception e) {
            if (e instanceof RuntimeException) {
                throw (RuntimeException)e;
            } else {
                throw new RemoteException(e.getMessage(), e);
    *  this method deserializes the request/response structure in the body
    protected void _readFirstBodyElement(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState  state) throws Exception {
        int opcode = state.getRequest().getOperationCode();
        switch (opcode) {
            case hello_OPCODE:
                _deserialize_hello(bodyReader, deserializationContext, state);
                break;
            default:
                throw new SenderException("sender.response.unrecognizedOperation", Integer.toString(opcode));
    * This method deserializes the body of the hello operation.
    private void _deserialize_hello(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
        try {
            Object myHellowsdlBinding_hello_RespSObj =
                myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer.deserialize(ns1_hello_helloResponse_QNAME,
                    bodyReader, deserializationContext);
            SOAPBlockInfo bodyBlock = new SOAPBlockInfo(ns1_hello_helloResponse_QNAME);
            bodyBlock.setValue(myHellowsdlBinding_hello_RespSObj);
            state.getResponse().setBody(bodyBlock);
        } catch (DeserializationException e) {
            if (e.getSoapFaultSubCodeType() == JAXRPCExceptionBase.FAULT_CODE_NONE && e.getSoapFaultCodeType() != JAXRPCExceptionBase.FAULT_CODE_DATA_ENCODING_UNKNOWN) {
                e.setSoapFaultSubCodeType(JAXRPCExceptionBase.FAULT_CODE_BAD_ARGUMENTS);
            throw e;
    public String _getEncodingStyle() {
        return SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding();
    public void _setEncodingStyle(String encodingStyle) {
        throw new UnsupportedOperationException("cannot set encoding style");
    public ClientTransport getClientTransport() {
        return super._getTransport();
    * This method returns an array containing (prefix, nsURI) pairs.
    protected String[] _getNamespaceDeclarations() {
        return myNamespace_declarations;
    * This method returns an array containing the names of the headers we understand.
    public QName[] _getUnderstoodHeaders() {
        return understoodHeaderNames;
    * This method handles the case of an empty SOAP body.
    protected void _handleEmptyBody(XMLReader reader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
    public void _initialize(InternalTypeMappingRegistry registry) throws Exception {
        super._initialize(registry);
        myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_ReqS.class, ns1_hello_TYPE_QNAME);
        myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_RespS.class, ns1_helloResponse_TYPE_QNAME);
    private static final QName _portName = new QName("http://localhost/mywork/hellowsdl", "hellowsdlPort");
    private static final int hello_OPCODE = 0;
    private static final QName ns1_hello_hello_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private static final QName ns1_hello_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private CombinedSerializer myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer;
    private static final QName ns1_hello_helloResponse_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private static final QName ns1_helloResponse_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private CombinedSerializer myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer;
    private static final String[] myNamespace_declarations =
                                        new String[] {
                                            "ns0", "http://localhost/mywork/hellowsdl"
    private static final QName[] understoodHeaderNames = new QName[] {  };
    }The errors that are produced are-
    java.rmi.RemoteException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found
    Kindly help to resolve this.
    Thanks.

Maybe you are looking for

  • Report of Document Types/ Activity

    Hello SAP Guru's Is there a way I can view all the document types currently opened or cleared for my customers?  I am looking for something to give me that plus the ability to drill down by document number to view activity. Thanks! POINTS AWARDED

  • How do I use spaces in Mountain Lion?

    Is there a way to activate the "spaces" function in Mountain Lion?  I really enjoyed that in Snow Leopard.

  • Problem with building conditional display items

    Dear All, Please help as I am using APEX for the first time. This my requirement during form dispaly in tabular format. There is one display item QA_TIER(not a database item). This item value is computed based on the condition below. I created a disp

  • VI server registration error

    I have a VI-based server in DSC 7.1, and I try to upgrade to DSC 8.0. I followed the instructions from NI, but I cannot register the VI server with the registration VI. I get : Error -1967362038 occurred at an unidentified location Possible reason(s)

  • WL 5.1 & VisualAge 3.0

    hi, Weblogic claims to have "better support for VisualAge". what do they mean by it, how do you install it (is it a new integration kit). how do you work with WL5.1 and VisualAge for Java? peter.