Does J2SE web service consumer need weblogic as agent?

Since OWSM 11g, agent is part of weblogic server. so, does this mean for a J2SE web service consumer, I need to install weblogic for it to let it work with OWSM agent? if so, what configuration needed for J2SE web service consumer to work with weblogic ?

I got the following error.
But If I call it from a jsp page or a servlet. Nothing happend, Transaction is successful.
java.lang.NullPointerException
     at org.apache.commons.discovery.resource.ClassLoaders.getAppLoaders(ClassLoaders.java:206)
     at org.apache.axis.AxisProperties.getClassLoaders(AxisProperties.java:118)
     at org.apache.axis.AxisProperties.getNameDiscoverer(AxisProperties.java:105)
     at org.apache.axis.AxisProperties.getResourceClassIterator(AxisProperties.java:112)
     at org.apache.axis.configuration.EngineConfigurationFactoryFinder$1.run(EngineConfigurationFactoryFinder.java:116)
     at java.security.AccessController.doPrivileged(Native Method)
     at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:113)
     at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:160)
     at org.apache.axis.client.Service.getEngineConfiguration(Service.java:813)
     at org.apache.axis.client.Service.getAxisClient(Service.java:104)
     at org.apache.axis.client.Service.<init>(Service.java:113)
     at org.tempuri.wsdl.EFSnet2Locator.<init>(EFSnet2Locator.java:10)
     at com.ipharmacy.payment.Payment.main(Payment.java:12)

Similar Messages

  • How to send the SOAP Fault Message to the Web Service Consumer

    Hi,
    I have configured SAOP  to Proxy Syncronous Scenario in PI 7.1 and using XML Validation  in Adapter Engine to Validate the Structure of the Message Payload.The scenario is working fine.When some of the Filed's Length  increses the maxLength specified in the Data Type . We are getting the Following error.
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
    1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
    2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.
    3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
    4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
         at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1164)
    My question is How does the Web Service Consumer can handle this Soap Server Error in the SOAP Fault.Or How can we provide a specific information like  'The value '123456789' of element 'CompanyCode' is not valid.It exceeds the Maximum Length'.
    I read this /people/sap.user72/blog/2006/01/16/xi-propagation-of-meaningful-error-information-to-soap-client blog .Where it is mentioned that the Web Service Consumer can handle while calling the Web Service.Is there any other solution?
    Kindly appreciate your help.

    Thank You Stefan for your kind reply.
    So  you mean to say if we use the XML Validation .we cannot provide proper error information to the calling Web Service Consumer .And While calling a Web Service they cannot Extract the Exact Message in the Text Filed(<text>) present under the Detail Element (<detail>) in the <SOAP:Fault> node. as
    <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
    1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
    2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.**
    3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
    4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
    That is why we have to use the Fault messages and  Field Lengths has to be Validated  in the Server proxy.
    Please Correct me If I am wrong.

  • Web Service consumer using ABAP-PROXY

    Hello,
    I want to test Web Service consumer using ABAP-PROXY . So I do what is explain in the weblog :
    [http://wiki.sdn.sap.com/wiki/display/Snippets/WebServiceconsumerusingABAP-PROXY]
    But when I execute the programm, the message : 'No valid source context supplied'.
    But, proxy and port are ok and activate.
    Can you help me.
    Thanks.

    Hi Jitesh,
    Thanks for the link.  I checked but did not find helpful info there.
    I have managed to make it work yesterday.  Two issues were identified. 
    1. The namespace in the WSDL file imported into ESR as an external definition.  I need to create the same namespace in ESR before importing the WSDL and then import the WSDL into that namespace.
    2. The authentication method.  The authentication method in the IIS configuration of the .NET web service has to be set to Basic Authentication.  Then I set logical port of the consumer proxy in the OSAMANAGER to use Basic Authentication also.  So far only the Basic Authentication works in my test scenario.
    I am closing this question.
    Regards,
    Jiannan

  • How to secure a J2SE Web Service

    Hi,
    I have created a J2SE Web Service using JAX-WS and I now wish to secure it but I can't seem to work out how to do it in an automated manner.
    I have used the simple Java-First method, writing an annotated java class and then running wsgen to generate the WSDL and required artifacts.
    WSIT seems to be the solution, placing a WSIT config file in a META-INF directory on the classpath. However, in the examples that I have there seems to be a huge amount of overlap between the WSDL and the WSIT config file. Moreover, the content of the WSIT config seems to be dependent on the contents of the WSDL. This means that should I update the implementation class I would have to manually update the WSIT config (unlike the WSDL which would be autogenerated from the Java class).
    Ideally I would like to create two files:
    - myserviceImpl.java
    - wsit-config.xml (using the correct naming convention)
    Then run WSGEN and, hey presto, a full WSDL is generated complete ith security policy information. However, it seems that this is not the way it works.
    I'd be grateful for any advice you can give on how to automate this process. My current idea is to generate the WSDL and then use an XSLT step in the build process to drag the WSIT config into the WSDL.
    I'd also be interested in hearing how other people have created secure J2SE web services.
    I am using Eclipse (not NetBeans) and Maven.
    Thanks

    I am using Eclipse (not NetBeans) and Maven.I hate doing this, but have you tried Netbeans? Metro has really tight integration with it and pretty much can do what you want. However, making a programmer change IDE is like suggesting someone to try another religion.

  • Web service consumer wizard in ECC 6.0 SP17

    Hi,
    I'm trying to create web service consumer using the wizard. I completed the step and click finish button at the end of the wizard. However, the process is just stop there and the main menu SAP Easy Access is displayed. No objects created.
    I can generate the object after clicking the finish in the wizard on ECC 6.0 SP15.
    Any idea on what can I do to generate objects so I can consume the webservice?
    Additional info: When I tried this on different system with SP17, I got message 'no vendor specified' after the wizard analyzing WSDL given in the url. No service provider object is created after that message is displayed. It is a success message (green).
    Thanks,
    Iwan
    Edited by: Iwan Santoso on Feb 12, 2009 5:48 PM
    Update: I had a brain ****... when selecting Create -> Web Service, there is an options for Service Consumer, which I thought this is how you generate the proxy. Actually I need to select Create -> Proxy Object. When I select the proxy object, it works just fine. A class is generated.
    However, in different system, there is no option to create Web Service and Proxy Object. It's on SP17 as well. I'm going to do additional research since in that system I do not have proper auth. for SICF transaction.
    Edited by: Iwan Santoso on Feb 12, 2009 7:27 PM

    Hi
    Q :- we activate ICF service? How?
    Just goto TCODE - SE38 and run program - RSXMB_ACTIVATE_ICF_SERVICES
                                                                    SXMB_ACTIVATE_ICF_SERVICES
    some ICF service must be inactive
    Activating ICF service is a generic requirement.
    Check SAP Note 750287
    Thanks !
    Edited by: Abhishek Agrahari on Jan 8, 2009 9:22 AM

  • How to use a cascading LOV as a Web Services Consumer?

    How to use a cascading LOV as a Web Services Consumer?
    We are trying to populate a prompt programmatically.
    Our program is a Web Services Consumer.
    As an example we use Island Resorts Marketing
    The cascading LOV for City is
    Country -> Region -> City
    The City object is key-aware to the customer table
    The query is
    Customer | Revenue
    (where) City = [prompt]
    In order to make the key-awareness work, we must select the value (rowIndex) from the LOV
    When we run our program below, the LOV for City is not populated, as expected since we must first select the Country, then the Region.
    The code snippet below shows that the LOV for Country is populated. We have no idea how to go from there.
    Any hint will be immensely appreciated.
    Let us know if anything is unclear in the code.
    Source       
    RetrieveMustFillInfo retrieveMustFillInfo = RetrieveMustFillInfo.Factory.newInstance();
            RetrievePromptsInfo retrievePromptInfo = RetrievePromptsInfo.Factory.newInstance();
            retrievePromptInfo.setPromptLOVRetrievalMode(PromptLOVRetrievalMode.ALL);
            retrievePromptInfo.setRefreshReturnedLOVs(true);
            retrievePromptInfo.setReturnLOVOnMustFillPrompts(true);
            retrieveMustFillInfo.setRetrievePromptsInfo(retrievePromptInfo);
            // *-- need the "Refresh" action to get the .promptToBeFilled
            Action[] boActions = new Action[1];
            boActions[0] = Refresh.Factory.newInstance();
            try {
                documentInformation = reportEngine.getDocumentInformation(Integer.toString(infoObject.getID()), retrieveMustFillInfo, boActions, null, null);
                m_Token = documentInformation.getDocumentReference();
            } catch (Exception ex) {
                System.out.println(GetWSError(ex));
                return;
            if (documentInformation.getMustFillPrompts()) {
                PromptInfo[] promptInfoS = documentInformation.getPromptInfoArray();
                for (PromptInfo promptInfo : promptInfoS) {
                    System.out.println(String.format("Prompt '%1$s', hasLOV=%2$s", promptInfo.getName(), (promptInfo.getHasLOV() ? "Yes" : "No")));
                    if (promptInfo.getHasLOV()) {
                        LOV boLOV = promptInfo.getLOV();
                        for (Value boLOVValue : boLOV.getValuesArray()) {
                            System.out.println(String.format(" LOV item '%1$s' RowIndex=%2$s", boLOVValue.getColumnsArray(0), (boLOV.getRowIndexed() ? boLOVValue.getRowIndex() : "")));
                    System.out.println("--End LOV");
                    PromptInfo[] promptInfoS2 = promptInfo.getPromptToBeFilledArray();
                    if (promptInfoS2.length > 0) {
                        PromptInfo promptInfo2 = promptInfoS2[0];
                        System.out.println(String.format(" linked to %1$s", promptInfo2.getName()));
                        if (promptInfo2.getHasLOV()) {
                            LOV boLOV2 = promptInfo2.getLOV();
                            for (Value boLOVValue : boLOV2.getValuesArray()) {
                                System.out.println(String.format(" LOV item '%1$s' RowIndex=%2$s", boLOVValue.getColumnsArray(0), (boLOV2.getRowIndexed() ? boLOVValue.getRowIndex() : "")));
                            System.out.println("--End LOV");
    Result
    Prompt 'Enter value(s) for City:', hasLOV=Yes
    --End LOV
    linked to Enter value for Country of origin
    LOV item 'Australia' RowIndex=6
    LOV item 'France' RowIndex=2
    LOV item 'Germany' RowIndex=4
    LOV item 'Holland' RowIndex=7
    LOV item 'Japan' RowIndex=5
    LOV item 'UK' RowIndex=3
    LOV item 'US' RowIndex=1
    --End LOV

    Hi,
    Refer SAP Note 1278947. You would require a Service Market Place logon to access this article.
    Let me know if this helps.
    Regards,
    Shreyans Surana

  • Is it possible to invoke external REST web service hosted in WebLogic web application from an Adobe LiveCycle Process (ES-4)

    Is it possible to invoke an external REST web-service hosted in WebLogic web application from an Adobe LiveCycle Process (ES-4) with parameters as input and manipulating the response depending on the type of parameters it gets back. Then invoking an Adobe Form and prepopulating the Form based on the response parameters? Do you have sample projects that do this invocation. The part highlighted in red is what I need examples.

    You can simply use "Execute Script" operation in Workbench and make use of java.net.URL. Below links should help :
    http://www.mkyong.com/webservices/jax-rs/restfull-java-client-with-java-net-url/
    http://www.adobe.com/devnet/livecycle/articles/building-xml.html
    http://help.adobe.com/en_US/livecycle/9.0/workbenchHelp/help.htm?content=000581.html
    Hope this helps.
    -Wasil

  • Jdeveloper WS proxy error while invoking  web service deployed on weblogic

    Hello experts, can you please help me. I have web service deployed on weblogic server.
    I have not set any credential for this web service. I can test the service from SOAPUI without providing any credentials.
    Then I generated WS proxy client using Jdeveloper. When I try to run the client, I do not know why I get security execption (shown below) eventhough I have not secured the web service deployed on weblogic server.
    java.lang.SecurityException: keyStoreFilename is either null or empty string
         at weblogic.wsee.security.util.CertUtils.getCertificate(CertUtils.java:87)
         at pilot1.ContactWSPortTypePortClient.getBSTCredentialProvider(ContactWSPortTypePortClient.java:104)
         at pilot1.ContactWSPortTypePortClient.setPortCredentialProviderList(ContactWSPortTypePortClient.java:78)
         at pilot1.ContactWSPortTypePortClient.main(ContactWSPortTypePortClient.java:46)
    Process exited with exit code 0.
    Here is my client class :
    public static void main(String[] args) {
    try {
    contactWSService = new ContactWSService();
    ContactWSPortType contactWSPortType = contactWSService.getContactWSPortTypePort();
    Map<String, Object> requestContext = ((BindingProvider) contactWSPortType).getRequestContext();
    setPortCredentialProviderList(requestContext);
    // Add your code to call the desired methods.
    // QueryPageInputSecondPage qpisp= new QueryPageInputSecondPage(); //I have commented it in order to resolve security issue
    System.out.println("Inside the client class");
    } catch (Exception ex) {
    ex.printStackTrace();
    Inside the method setPortCredentialProviderList(), I have not provided any credentials, keystores etc. Because weblogic is not setup with SSL and also I have not set up any authorization or authentication for the web service. I do not know why I am able to test it through SOAPUI and why not using WS proxy.
    Appreciate your quick response.
    thanks a lot
    jyothi

    Hello experts, can you please help me. I have web service deployed on weblogic server.
    I have not set any credential for this web service. I can test the service from SOAPUI without providing any credentials.
    Then I generated WS proxy client using Jdeveloper. When I try to run the client, I do not know why I get security execption (shown below) eventhough I have not secured the web service deployed on weblogic server.
    java.lang.SecurityException: keyStoreFilename is either null or empty string
         at weblogic.wsee.security.util.CertUtils.getCertificate(CertUtils.java:87)
         at pilot1.ContactWSPortTypePortClient.getBSTCredentialProvider(ContactWSPortTypePortClient.java:104)
         at pilot1.ContactWSPortTypePortClient.setPortCredentialProviderList(ContactWSPortTypePortClient.java:78)
         at pilot1.ContactWSPortTypePortClient.main(ContactWSPortTypePortClient.java:46)
    Process exited with exit code 0.
    Here is my client class :
    public static void main(String[] args) {
    try {
    contactWSService = new ContactWSService();
    ContactWSPortType contactWSPortType = contactWSService.getContactWSPortTypePort();
    Map<String, Object> requestContext = ((BindingProvider) contactWSPortType).getRequestContext();
    setPortCredentialProviderList(requestContext);
    // Add your code to call the desired methods.
    // QueryPageInputSecondPage qpisp= new QueryPageInputSecondPage(); //I have commented it in order to resolve security issue
    System.out.println("Inside the client class");
    } catch (Exception ex) {
    ex.printStackTrace();
    Inside the method setPortCredentialProviderList(), I have not provided any credentials, keystores etc. Because weblogic is not setup with SSL and also I have not set up any authorization or authentication for the web service. I do not know why I am able to test it through SOAPUI and why not using WS proxy.
    Appreciate your quick response.
    thanks a lot
    jyothi

  • Create an SAP Web Service Consumer (calling External Sharepoint Web Service from ABAP)

    hi all,
    i am trying to
    Create an SAP Web Service Consumer (calling sharepoint Web Service from ABAP) using blog given on following link
    Create an SAP Web Service Consumer (calling External Web Service from ABAP) 
    but when i am using my url at the end of step 3, i am getting error as follows:
    i dont want to use local file option. Can anyone help me in this??
    thanks in advance
    regards,
    SDS

    Hi SDS,
    you recieved a http 404 error when trying to access the Sharepoint Web service. Http 404 indicates that the resource is not reachable (cf. HTTP 404 - Wikipedia, the free encyclopedia). There could be different reasons for that. I'd suggest rubble checking the URL of the Web service first. Try to access it from a browser on you desktop. If the URL is correc. Most likely the SAP system is not able to connect to the URL. This could, for example, be due to some firewall restrictions. You should ask a SAP Basis colleague if they are able to access the URL of the Web service from the server on which the SAP system is running.
    Christian

  • How to use web service consumer as a source to connect to Salesforce?

    I see a lot of articles and mapping xmls on how to use web service consumer but as a newbie I am not able to view the object schema from my salesforce enterprise WSDL after importing it in Informatica designer as a source. My enterprise wsdl has operations like create, retrieve, upsert, delete etc so if I want to read data from account then could someone guide me on how to use the web service consumer to view the fields after importing the wsdl.  After importing the wsdl and selecting the operation say create, the columns (ports) displayed shows different groups but it doesn't list the object fields? what am I missing here? And what is the operation to read data from Salesforce is it "retrieve" from the entripse wsdl? As a newbie on this, I appreciate any inputs on this topic.

    Magazinweg 7Taucherstraße 10Taucherstraße 10Av. Copacabana, 267Strada Provinciale 124Fauntleroy CircusAv. dos Lusíadas, 23Rua da Panificadora, 12Av. Inês de Castro, 414Avda. Azteca 123 I have the source table like this and i want to replace the character and sum up the numbers and how can i do it, I replace the character by reg_replace() function but I am not able to add the number because it is of not fixed length. My Output should be,71115705396

  • In Java EE 7's Firstcup tutorial, why does does the web tier consume the data from the dukes-age web service?

    In the Firstcup tutorial, the responsibilities of the web tier are listed as:
    dynamically generate content for the client
    collect input from the user
    return results from business tier components
    control the flow of client screens & pages
    maintain session state
    perform basic logic
    hold data temporarily in JavaBeans components
    Which of these responsibilities would retrieving data from a web service fall under?
    The tutorial also lists the technologies used in the web tier, and JAX-RS is not included in that list. The list of technologies used by the business tier does, however, list JAX-RS. I was surprised to find the DukesBDay JavaBeans component (in the web tier) calling the dukes-age web service, instead of the DukesBirthdayBean EnterpriseBean (in the business tier), which uses hard coded value for Duke's birth date.
    Is it typical for the web tier to consume web services in this way? What about when using an application client container, wouldn't that skip the web tier altogether, and in doing so also skip the web service call? Wouldn't DukesBirthdayBean in the business tier benefit from making the call to the web service, instead of having the date hard coded into it, and wouldn't this also solve the problem of the missing web service call when using an application client container?

    Hi Shadab,
    Here is a list of Web service standards supported by SAP in NetWeaver 7.1.1: [Supported Standards|http://help.sap.com/saphelp_nwpi711/helpdata/en/44/624479f7e608fae10000000a422035/frameset.htm] (also in [7.0|http://help.sap.com/saphelp_nw70/helpdata/EN/44/624479f7e608fae10000000a422035/frameset.htm] and [7.0.1|http://help.sap.com/saphelp_nw70ehp1/helpdata/EN/44/624479f7e608fae10000000a422035/frameset.htm]). The Enterprise Services adhere to these standards, and on the provider side you have the tools to configure the authentication settings as needed. On the consumer side, one just has to use a Java release (or any other platform) that supports these standards.
    While I am not a Java developer, there should be [many ways to consume a Web service in Java|http://www.google.bg/search?q=consumewebservice+java].
    Hope this helps,
    Rossen

  • Web Services Consumer Transformation does not expand xml string in WSDL

    I am trying to create a WebService Consumer transformation with a WSDL file which I have imported in Informatica PowerCenter.The WSDL file has complexType xml strings which are not getting expanded while I am importing the WSDL file, thus it’s not showing the input and output fields in the request and response respectively. I have xsd file definition for these xml strings separately and there is no way I can incorporate them with the main WSDL in PowerCenter.  While I looked into the Informatica Documentation I found that in the Developer tool I can create Web Service in Data Services, and incorporate xsd element definition with main WSDL file. But it’s not exactly working in the way its described in the documentation. Any help would be appreciated.

    Hello All, I have got a scenario to implement: I have a Character source column which I need to convert to Numeric(18,4) and load into table. My source and target is a Netezza table. If the conversion fails, we do not drop the record, instead insert NULL for those records,i.e. source and target has same number of records. I use an expression as below : DECODE(Input_String, NULL, NULL-- Check for alphabets IIF((UPPER(Input_String) != LOWER(Input_String)), NULL-- Check for special charactersIIF((INSTR(Input_String,',',1) > 0 || INSTR(Input_String,':',1) > 0 || INSTR(Input_String,'@',1) > 0),NULL, TO_DECIMAL(Input_String,4))    )       ) Now my question is, can we use a single INSTR statement and check for all the special characters? I want to avoid writing multiple INSTR statements. Please suggest me how to check multiple characters in a single INSTR statement. Thanks & RegardsBiswajeet.

  • Creating And Deploying A JWSDP Web Service Client to Weblogic 8.1

    This setup produces an EAR containing a message driven bean in a jar file. When the MDB receives a message
    it checks to see if there is any data in a database table and if so calls the web service with that data. These instructions
    are for MS-Windows environments.
    In my setup I have:
    the weblogic domain at c:\b2b80
    the jwsdp at c:\apps\jwsdp-1.3
    extra jar files for the app server in c:\b2b80\lib
    the main weblogic installation at c:\apps\weblogic810\
    1> Download the the JWSDP version you wish to use and install it. (In this example I'm using 1.3)
    2> Create a project structure for you client like this:
         /project
              /earbuild
                   /META-INF
              /ejbbuild
                   /META-INF
              /ejbsource
              /wssource
    3> in the /project directory you will need a build.xml file that looks something like this: (the ant build targets are described at the end of this document)
    ==============================================================
    <?xml version="1.0"?>
    <project name="svcowner" default="buildall" basedir=".">
         <property file="classpath.settings"/>
         <property name="wssource" value="wssource"/>
         <property name="ejbsource" value="ejbsource"/>
         <property name="compileejbdest" value="ejbbuild"/>
         <property name="earbuilddest" value="earbuild"/>
         <property name="jarfilename" value="svcownerejb.jar"/>
         <property name="earfilename" value="svcowner.ear"/>
         <property name="debug" value="true"/>
         <property name="deprecation" value="true"/>
         <!-- this runs the create.bat which has all of the wscompile parameters -->
         <target name="cmdline_wscompile">
              <exec executable="wssource/create.bat"/>
         </target>
         <target name="compileejb" depends="cmdline_wscompile">
              <javac debug="${debug}" srcdir="${wssource}" classpath="${BUILD_CLASSPATH}"
                   destdir="${compileejbdest}" includes="**/*.java" deprecation="${deprecation}"/>
              <javac debug="${debug}" srcdir="${ejbsource}" classpath="${BUILD_CLASSPATH}"
                   destdir="${compileejbdest}" includes="**/*.java" deprecation="${deprecation}"/>
         </target>
         <target name="buildejbjar" depends="compileejb">
              <jar jarfile="${earbuilddest}/${jarfilename}" manifest="${compileejbdest}/META-INF/MANIFEST.txt">
                   <fileset dir="${compileejbdest}">
                        <include name="**/*.*"/>
                   </fileset>
              </jar>
         </target>
         <target name="buildear" depends="buildejbjar">
              <jar jarfile="${earfilename}">
                   <fileset dir="${earbuilddest}">
                        <include name="**/*.*"/>
                   </fileset>
              </jar>
         </target>
         <target name="deploy">
              <copy file="${earfilename}" todir="../../config/domain/applications"/>
         </target>
         <target name="buildall" description="build everything" depends="buildear, deploy">
         </target>
    </project>
    ==============================================================
    4> You need a matching classpath.settings file in the same directory, something like this:
    ==============================================================
    BUILD_CLASSPATH=/b2b80/lib/saaj-impl.jar;/b2b80/lib/saaj-api.jar;/b2b80/lib/jaxrpc-api.jar;/b2b80/lib/jaxrpc-impl.jar;c:/b2b80/lib/jaxrpc-spi.jar/b2b80/classes/;/b2b80/classes;/apps/weblogic810/server/lib/weblogic.jar;/apps/weblogic810/server/lib/weblogic_sp.jar;/apps/weblogic810/server/lib/xmlx.jar;/apps/weblogic810/server/ext/weblogic-tags.jar;/apps/weblogic810/server/ext/jdbc/oracle/920/ojdbc14_g.jar;/b2b80/lib/log4j.jar
    ==============================================================
    5> In the /project/earbuild/META-INF directory you need an application.xml file:
    ==============================================================
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN' 'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
    <application>
    <display-name>svcownerb2b</display-name>
    <description>Application description</description>
    <module>
    <ejb>svcownerejb.jar</ejb>
    </module>
    </application>
    ==============================================================
    6> The /project/ejbsource directory contains the source for the client application. In my case this is a message driven bean (note that code below isn't complete). The most important part of the code below is the setting of the javax.xml.soap.MessageFactory system property.
    System.getProperties().put("javax.xml.soap.MessageFactory","com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");
    If you don't do this a weblogic class will be used and the code will fail.
    ==============================================================
    package com.svcclient.ejb.svcownershipment;
    import java.text.*;
    import java.io.*;
    import java.sql.*;
    import java.util.Properties;
    import javax.ejb.*;
    import javax.jms.*;
    import javax.naming.*;
    import javax.sql.DataSource;
    import com.svcclient.util.*;
    import org.w3c.dom.*;
    import com.svcclient.websvc.svcowner.*;
    import javax.xml.rpc.Stub;
    public class SvcOwnerShipmentSubscriberMDB implements MessageDrivenBean, MessageListener
    private transient MessageDrivenContext mdc = null;
    private static Context context;
    private final static String CLASSNAME = "SvcOwnerShipmentSubscriberMDB";
    private String DATASOURCE_JNDI = "svcclient.b2b";
    private static DataSource mDS = null;
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    public SvcOwnerShipmentSubscriberMDB()
    System.getProperties().put("javax.xml.soap.MessageFactory","com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");
    try
    if (context == null)
    context = new InitialContext() ;
    if (mDS == null)
    mDS = (DataSource)context.lookup(DATASOURCE_JNDI);
    catch (NamingException ex)
    ex.printStackTrace();
    catch(Exception ex)
    ex.printStackTrace();
    public void onMessage(javax.jms.Message message)
    TextMessage msg = null;
    String ordernumber = null;
    String lineid = null;
    try
    if (message instanceof TextMessage)
    msg = (TextMessage) message;
    ordernumber = msg.getStringProperty("ordernumber");
                   // the JMS message contains a property that is an order number
    createAndSendXML(ordernumber);
    catch (Throwable ex)
    ex.printStackTrace();
    private void createAndSendXML(String ordernumber)
    if(ordernumber==null)
    return;
    PreparedStatement statement = null;
    ResultSet rset = null;
    java.sql.Connection conn = null;
    try
    conn = DBHelper.getConnection(mDS,"SvcOwnerShipmentSubscriberMDB.createAndSendXML");
    statement = conn.prepareStatement("select * from ..."); // you SQL here
    statement.setString(1,ordernumber);
    rset = statement.executeQuery();
    StringBuffer data = new StringBuffer();
    data.append("<? version=\"1.0\"?>\n");
    data.append("<shippingRequest>\n");
    while(rset.next())
    data.append("\t<order_date>"+dateFormat.format(new java.util.Date(rset.getTimestamp("SCHEDULE_SHIP_DATE").getDate()))+"</order_date>\n");
    data.append("\t<brand_name>svcclient</brand_name>\n");
    data.append("\t<shipRequestType>Sale</shipRequestType>\n");
    data.append("</shippingRequest>\n");
              // call the web service with the data from the database
    DataExchanger_Impl impl = new DataExchanger_Impl();
    Stub stub = (Stub)(impl.getDataExchangerSoap());
    DataExchangerSoap dx = (DataExchangerSoap)stub;
    String resp = dx.exchangeData("svcclient", "mypassword", "Sales", data.toString());
    catch(SQLException sqle)
    sqle.printStackTrace();
    catch(Exception e)
    e.printStackTrace();
    finally
    try
    if (rset != null)
    rset.close();
    if (statement != null)
    statement.close();
    if (conn != null)
    conn.close();
    catch(Exception x){}
    public void ejbCreate() { System.out.println("In SvcOwnerShipmentSubscriberMDB.ejbCreate()"); }
    public void setMessageDrivenContext(MessageDrivenContext mdc) { this.mdc = mdc; }
    public void ejbRemove() throws javax.ejb.EJBException { System.out.println("In SvcOwnerShipmentSubscriberMDB.remove()"); }
    ==============================================================
    7> The /project/ejbbuild/META-INF directory needs a MANIFEST.txt file.
    Manifest-Version: 1.0
    8> The /project/ejbbuild/META-INF directory needs a ejb-jar.xml file. This just sets up the MDB which is the client.
    ==============================================================
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
    <ejb-jar>
    <display-name>SvcOwnerShipmentSubscriberMDB</display-name>
    <enterprise-beans>
    <message-driven>
    <display-name>SvcOwnerShipmentSubscriberMDB</display-name>
    <ejb-name>SvcOwnerShipmentSubscriberMDB</ejb-name>
    <ejb-class>com.svcclient.ejb.svcownershipment.SvcOwnerShipmentSubscriberMDB</ejb-class>
    <transaction-type>Container</transaction-type>
    <message-driven-destination>
    <destination-type>javax.jms.Topic</destination-type>
    <subscription-durability>NonDurable</subscription-durability>
    </message-driven-destination>
    </message-driven>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>SvcOwnerShipmentSubscriberMDB</ejb-name>
    <method-name>onMessage</method-name>
    <method-params>
    <method-param>javax.jms.Message</method-param>
    </method-params>
    </method>
    <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    ==============================================================
    9> The /project/ejbbuild/META-INF directory needs a weblogic-ejb-jar.xml file.
    ==============================================================
    <?xml version="1.0"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN" "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd">
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>SvcOwnerShipmentSubscriberMDB</ejb-name>
    <message-driven-descriptor>
    <pool>
    <max-beans-in-free-pool>5</max-beans-in-free-pool>
    <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
    </pool>
    <!-- JNDI Name of the Topic that the SvcOwnerShipmentSubscriberMDB listens for messages on -->
    <destination-jndi-name>jms.svcownerShipmentsTopic</destination-jndi-name>
    </message-driven-descriptor>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    ==============================================================
    10> The /project/wssource directory needs a dataexchange.wsdl file. This is the WSDL describing the web service
    we want to connect to with our client.
    ==============================================================
    <?xml version="1.0" encoding="utf-8"?>
    <wsdl:definitions
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:tns="https://www.svcowner.com/mfg/DataExchange/"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    targetNamespace="https://www.svcowner.com/mfg/DataExchange/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    name="">
    <wsdl:types>
    <s:schema elementFormDefault="qualified"
    targetNamespace="https://www.svcowner.com/mfg/DataExchange/">
    <s:element name="exchangeData">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="sender" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="transactionType" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="data" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="exchangeDataResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="exchangeDataResult" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="exchangeDataSoapIn">
    <wsdl:part name="parameters" element="tns:exchangeData" />
    </wsdl:message>
    <wsdl:message name="exchangeDataSoapOut">
    <wsdl:part name="parameters" element="tns:exchangeDataResponse" />
    </wsdl:message>
    <wsdl:portType name="DataExchangerSoap">
    <wsdl:operation name="exchangeData">
    <wsdl:input message="tns:exchangeDataSoapIn" />
    <wsdl:output message="tns:exchangeDataSoapOut" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="DataExchangerSoap" type="tns:DataExchangerSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="exchangeData">
    <soap:operation soapAction="https://www.svcowner.com/mfg/DataExchange/exchangeData"
    style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="DataExchanger">
    <wsdl:port name="DataExchangerSoap" binding="tns:DataExchangerSoap">
    <soap:address location="https://svc.svcowner.com/mfg/dataexchange.php" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    ==============================================================
    10> The /project/wssource directory needs a websvc_config.xml file. This file tells wscompile where
    to find the WSDL file and the package name for the generated classes.
    ==============================================================
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
         <wsdl location="wssource/dataexchange.wsdl" packageName="com.svcclient.websvc.svcowner"/>
    </configuration>
    ==============================================================
    11> The /project/wssource directory needs a create.bat file. This just sets up the environment
    and calls the wscompile batch file in the JWSDP. I had to tweak the wscompile.bat file to match
    my environment as well.
    ==============================================================
    SETLOCAL
    SET WSDP=C:\apps\jwsdp-1.3\
    SET ANT_HOME=%WSDP%;apache-ant
    SET PATH=%ANT_HOME%\bin;%WSDP%jaxrpc\bin;%PATH%
    SET JAVA_HOME=c:\apps\weblogic810\jrockit81sp2_141_05
    call wscompile -gen:client -s ./wssource -keep -g -d ejbbuild wssource/websvc_config.xml
    ==============================================================
    12> The /project directory needs a build.bat file. Just a way for me to make sure my
    environment is set up right before doing the build.
    ==============================================================
    SETLOCAL
    SET ANT_HOME=c:\apps\jakarta-ant-1.4.1
    SET PATH=%ANT_HOME%\bin;%PATH%
    SET JAVA_HOME=c:\apps\weblogic810\jrockit81sp2_141_05
    call ant -buildfile build.xml %1 %2 %3 %4 %5 %6 %7 %8 %9
    ==============================================================
    13> You need to copy the following jar files from the JWSDP into a location they can be used by the
    app server during run time and also for the build process. In my set up this is c:\b2b80\lib. Note that
    these are pointed to by the file in step 4.
    c:\apps\jwsdp-1.3\jaxrpc\lib\jaxrpc-api.jar
    c:\apps\jwsdp-1.3\jaxrpc\lib\jaxrpc-impl.jar
    c:\apps\jwsdp-1.3\jaxrpc\lib\jaxrpc-spi.jar
    c:\apps\jwsdp-1.3\saaj\lib\saaj-api.jar
    c:\apps\jwsdp-1.3\saaj\lib\saaj-impl.jar
    14> You must make sure that the jar file in step 13 are at the front of the classpath for the
    weblogic server. WL comes with classes that conflict with these jars.
    15> I also had to add the root ssl certificate from the partners certificate authority to the java keystore
    using the keytool because this service uses SSL:
    C:\apps\weblogic810\jrockit81sp2_141_05\jre\bin>keytool -import -keystore ..\lib\security\cacerts -alias svcownerroot -keypass password -file c:\temp\svcownerroot.cer
    ==============================================================
    So the idea is this, you run the /project/build.bat file from within the /project directory. This
    calls ant which uses the build.xml file to create everything and copy the EAR to the weblogic deployment
    directory. The default ant target is buildall.
    The cmdline_wscompile target runs the /project/wssource/create.bat file which in turn runs the wscompile.bat
    file from the jwsdp. This causes the dataexchange.wsdl file to processed and the client files to be generated.
    The generated java files go into the /project/wssource directory. The generated class files go into the
    /project/ejbbuild directory. They need to be there so the MDB can use them.
    Next the compileejb ant target compiles the MDB java file and places the resulting class file into the
    /project/ejbbuild directory.
    Next the buildejbjar ant target takes everything in the /project/ejbbuild directory and creates the ejb jar
    file that will be included in the EAR. This file is placed in the /project/earbuild directory.
    Finally the buildear ant target takes everything in the /project/ejbbuild directory and produces the EAR
    file for deployment. The EAR file is placed in the /project directory.
    The deploy task simply copies the EAR file into the weblogic domain applications directory.

    It's really the web service that determines what kind of authentication is required. You can't just use any old strategy. If the web service isn't expecting it in that form, it won't work. Typically, either HTTP BASIC Auth or WS-Security is used. You'd have to contact the people responsible for the web service to know what kind of auth it requires.

  • Spring web-service application in weblogic 9.1

    Hi,
    Iam trying to port the sample application given with Spring Web Services download(It works great with tomcat) to Weblogic 9.1. There were some issues doing it. You can see the discussion here. [url http://forum.springframework.org/showthread.php?t=26205]
    I did that accordingly and Iam getting a [org.springframework.ws.soap.axiom.AxiomSoapMessageFactory]: Constructor threw exception; nested exception is java.lang.ClassCastException: weblogic.xml.stax.XMLStreamInputFactory
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:451)
            at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
            Truncated. see log file for complete stacktrace
    org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.ws.soap.axiom.AxiomSoapMessageFactory]: Constructor threw exception; nested exception is java.lang.ClassCastException: weblogic.xml.stax.XMLStreamInputFactory
            at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
            at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:759)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:724)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:387)
            Truncated. see log file for complete stacktrace
    java.lang.ClassCastException: weblogic.xml.stax.XMLStreamInputFactory
            at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
            at org.springframework.ws.soap.axiom.AxiomSoapMessageFactory.<init>(AxiomSoapMessageFactory.java:97)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
            Truncated. see log file for complete stacktrace error.
    Look at this page for the settings i have done. [url http://forum.springframework.org/showthread.php?t=40051]
    Please help me resolve this issue.
    Thanks
    Vignesh

    Well, in the web.xml for the app we have it set up as BASIC authentication, and list the roles that are allowed at that particular site. In order to sign in, another app would have to set the authorization property in the URLConnection.
    The problem is, using AXIS to connect, I have no way to set this property in the connection, since it is wrapped up by axis. (Call)
    I have reached a potential solution of constructing the soap message with the client using means other than the AXIS API, which I am implementing now and praying it will work!
    Everything I have read suggests using SSL to connect to the web service, but I can't figure out how to set up SSL so that my host/axisweb directory needs HTTPS but host/ doesn't...
    Does this make sense? Any suggestions?

  • Calling a WebLogic web service from a WebLogic web application

    We would like to call a WebLogic web service from WebLogic web application. The current architecture looks like:
    LoadBalancer--->iPlanet-1/iPlanet-2--->Firewall--->WebLogic-AppServer-1/WebLogic-AppServer-2
    The web application and web service are in the same WebLogic cluster. We would prefer that the web services do not get published externally.
    Does the WebLogic web application need to make a call back outside the firewall to the load balancer?
    Is there a way the web services can be called locally with load balancing?
    Can web service calls be made over the t3 protocol?
    Thanks,
    Mike

    I think one solution is to use a Java proxy to call the Web services.
    In the Java proxy you can have a method that accepts the user/pass and sets them correctly for the Web service.
    Then you expose that Java proxy as a data control (right click, create data control) - and then create a page that invokes that method.
    (For the basics of working with a POJO data control see: http://blogs.oracle.com/shay/2009/07/java_class_data_control_and_ad.html )

Maybe you are looking for