How to include .xml on .war generated by jwsc?

Hello there!
When i build my web service i cannot be able to put in the war file my .xml files they are copy out of the war :__ I need those files because are for ibatis
This is my build.xml
<target name="build.WebService">
     <jwsc
     srcdir="${src.dir}/ActivacionBlackBerryWS"
     destdir="${dest.dir}"
     keepGenerated="yes" >
          <module contextPath="test" name="testWS">
               <jwsfileset srcdir="${src.dir}/testWS">
                    <include name="**/*.java" />
               </jwsfileset>
          </module>
     </jwsc>
                    <copy todir="${dest.dir}">
                    <fileset dir="${src.dir}/testWS" excludes="**/*.java"/>
                    </copy>
</target>
i have 2 packages... 1 for web service and the other one with sqlMapConfig.xml and statements.xml
and the result is a .war with my WS but out of this files are the package with the .xml
what can i do??
thanx in advance

Hi,
Try using the following to Update your WAR/EAR file...:
<taskdef name="jwsc" classname="weblogic.wsee.tools.anttasks.JwscTask" />
    <target name="build-target">
        <jwsc srcdir="src" destdir="${ear-dir}" listfiles="true">
             <jws file="TargetImpl.java" compiledWsdl="${cowDir}/target/Target_wsdl.jar" type="JAXWS"/>
        </jwsc>
<font color=maroon>
         <zip destfile="${ear-dir}/jws.war" update="true">
             <zipfileset dir="src/examples/webservices/callback" prefix="wsdls">
                 <include name="Callback*.wsdl"/>
             </zipfileset>
         </zip>
</font>
    </target>
For real demo of this <Zip> tag please refer to : http://weblogic-wonders.com/weblogic/2010/01/09/username-token-in-jaxws-webservice/
Thanks
Jay SenSharma
http://weblogic-wonders.com/weblogic/webservices/  (WebLogic Wonders Are Here)

Similar Messages

  • Include jar in the war generated by jwsc

    Hello,
    How can i add jar's in the war archive generated by jwsc ?
    Regards,
    Fabrice

    Weblogic 9.2 does not support zip need to add sepate task like below
    <project name="webservices-complex" default="build-service">
    <path id="dependencyfinder">
    <pathelement location="C:/bea/weblogic92/server/lib/weblogic.jar"/>
    </path>
         <taskdef name="jwsc" classname="weblogic.wsee.tools.anttasks.JwscTask">
              <classpath refid="dependencyfinder"/>
         </taskdef>
         <target name="build-service">
              <jwsc srcdir="src"
                   destdir="." keepGenerated="true" verbose="on" debug="true"
                   debuglevel="lines,vars,source"
                   listfiles="true" classpathref="dependencyfinder">
                   <classpath>
                   <pathelement path="${java.class.path}" />
                   <pathelement path="c:/CustInfo.jar" />
                   </classpath>               
                   <jws file="ServiceConsumer.java" >
                   </jws>
              </jwsc>
              <zip destfile="ServiceConsumer.war" update="true">
                   <zipfileset dir="src" prefix="docs/user-guide"/>
                   <zipfileset dir="build" prefix="build"/>
                   <zipfileset dir="Webcontent/WEB-INF/lib" includes="CustInfo.jar" fullpath="WEB-INF/lib/CustInfo.jar"/>
              </zip>
         </target>
    </project>

  • How to include XML Prolog in BPEL SOAP message.

    Hi,
    I'm using SOA Suite 11g on WebLogic and have a BPEL Process in a composite application that is calling a third party SOAP Web Service.
    Whilst it is standard for a SOAP service to not care whether or not the SOAP message includes an XML Prolog (<?xml version="1.0" encoding="utf-8"?>) this third party service rejects the message if the prolog is not included.
    Unfortunately the partner link in my BPEL process is not adding the prolog when invoking the service and I cannot get the third party service changed to accept messages without it.
    Does anyone know how I can make BPEL include the prolog in SOAP messages?
    Currently the SOAP message looks like this:-
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header/>
    <soap:Body>
    </soap:Body>
    </soap:Envelope>
    What I would like it to look like is this :-
    *<?xml version="1.0" encoding="utf-8"?>*
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header/>
    <soap:Body>
    </soap:Body>
    </soap:Envelope>
    Thanks in advance...

    Hi swigg,
    It's not the partnerlink input variable that I want to manipulate, it's the SOAP Envelope that the Partner Link generates when it is invoked.
    I know that you can manipulate the SOAP Header by adding properties to the Partnerlink but it's the Envelope that surrounds both the Header and the Body that I want to set the prolog on.
    It can be done in java and .NET (WCF) by setting a property on the SOAP Envelope class, but I can't see a way to do it for a partner link in BPEL which is a shame.
    To be honest it looks like Oracle have let me down here so I'll have to use some other technology to call this service which unfortunately plays into the hands of those that didn't think I should use Oracle's BPEL offering in the first place.
    Thanks.

  • How to include .xml file while building a stand alone applicatio​n .exe file from a Labview program

    HI,
    I have a labview program which loads default values of all the variables from a .xml file when executed.  I am trying to build a standalone '.exe application'  using
    (Tools Menu --> Build Application from VI) , however I am not sure where to include this .xml file in the process?  I really appreciate if some one could let me know.
    Thanks
    Vish

    As GerdW said, it is preferable (and better practice) to use the project explorer. My guess, you didn't configure the build correctly (and probably used the default settings).
    First, you have to specify your xml file as Always included is the source file tab
    Now look at how the build folders are built:
    The .ini file (xml in your case) is in the data folder. So in the build the relative position of the xml file is not the same as in the development environment. You have to be aware of this difference and use a diiferent relative path for the exe. You can do this using a conditional disable symbol in the project and then use the conditional disable structure in your VI.
    Here in the deploy case the exe will look for the file in the data folder and in the development environment it will look in a folder name Files.
    Ben64

  • How to include xml file without embedding in flex web application?

    Hi
    I have a big XML file around 11 mb. I want to include this xml in my web application without embedding.
    So anyone have idea to include.
    Please suggest me any idea.
    Thanks

    If you don't want to embed the XML file into a SWF, then the SWF can download the XML file from the server at runtime when it needs it. But there will be a delay while that happens. Maybe it would be better to put the data in the XML file into a database and then access only the parts of it that you need.
    Gordon Smith
    Adobe Flex SDK Team

  • How to include XML Entity in XSU?

    Hi,
    I am using XSU to get XML output, I couldn't find a way to output an ENTITY in XML output.
    I hope I can get help on this.
    thanks.
    jane

    Hi Vineet ,
    You can use function module "SDIXML_DATA_TO_DOM" to convert the data in internal table to XML form. This function module is used to create the structure for XML document.
    After this you use FM "SDIXML_DOM_TO_XML".
    Hope this helps you!!!!
    Regards,
    Nikhil

  • How do you include a DTD when generating an XML document

    Hi
    I have just started to use the Java XML Pack to generate a XML document.
    How do you put the dtd element
    <!DOCTYPE Controller SYSTEM "controller.dtd">
    in the generated document.
    I am using the following piece of code
    public void generate(...)
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.newDocument();
    Element rootElement = createElement("Controller");
    // Fill out the nodes etc
    // Save the result
    TransformerFactory tFactory =
    TransformerFactory.newInstance();
    Transformer transformer = Factory.newTransformer();
    File f = new File("dummy.xml");
    FileWriter fw = new FileWriter(f);
    DOMSource d1 = new
    DOMSource(rootElement,"controller.dtd");
    StreamResult result = new StreamResult(fw);
    transformer.transform(d1, result);
    Thanks
    Greg

    Hello,
    I had to go through quite some pain to get this done about a year ago,anyways,here is the solution.
    all the import files are in jaxp1.1 bundle.
    below is a test class code.
    import org.apache.crimson.tree.XmlDocument;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import java.io.*;
    public class CreateDTDInXMLFile {
    public CreateDTDInXMLFile() {
    public static void main(String[] args) {
    try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.newDocument();
    Element root = document.createElement("root");
    Element name = document.createElement("name");
    name.appendChild(document.createTextNode("Khalid"));
    Element address = document.createElement("address");
    address.appendChild(document.createTextNode("2022 11th Ave SW"));
    root.appendChild(name);
    root.appendChild(address);
    document.appendChild(root);
    ((XmlDocument)document).write(System.out);
    //the above will print the simple xml doc,now add the dtd
    //suppose the dtd is [<!DOCTYPE root SYSTEM "address.dtd">]
    ((XmlDocument)document).setDoctype(null,"address.dtd",null);
    //now print the xml doc again
    System.out.println("\n");
    ((XmlDocument)document).write(System.out);
    } catch(ParserConfigurationException pce) {
    pce.printStackTrace();
    return;
    }catch (IOException ioe) {
    ioe.printStackTrace();
    This will take care of the agony..
    Khalid

  • How to include custom application.xml in JDev9i project

    Can anybody explain to me how to include a custom application.xml file when deploying to an .ear file? I need to include application wide security roles, and I can't see where in Jev9i how to do this.
    After searching this forum, I see that jdev9i can't include the orion-application.xml, but I want to include just the standard J2EE application.xml. Is this possible?
    Thanks,
    matt

    The standard application.xml file unfortunately can't be customized in JDev 9.0.2. The reasons why this capability was left out of JDev 9.0.2 are same reasons why the other EAR-level XML files were excluded. The OTN thread
    Re: Regarding 11i and E-business suite
    has a summary of those reasons, which you've probably seen. We know this is an area in need of improvement and will be adding this functionality in the JDev 9.0.3 release. Until then, you'll have to go with a work-around like an Ant build file, batch file, Java application, or some other kind of script.
    Below is a sample Java application which can be used to insert <security-role> elements into an EAR file's application.xml. Modify the main() method to customize for your purposes, and put xmlparserv2.jar on the classpath (in a JDev project, add the "Oracle XML Parser v2" library):
    package mypackage4;
    import java.io.*;
    import java.util.*;
    import java.util.zip.*;
    import oracle.xml.parser.v2.*;
    import org.w3c.dom.*;
    import org.xml.sax.SAXException;
    public class PostProcessEAR
    public static void main( String[] args ) throws IOException
    final String earFile = "C:\\temp\\myapp.ear";
    final PostProcessEAR postProcess = new PostProcessEAR( earFile );
    postProcess.addSecurityRole( null, "first_role" );
    postProcess.addSecurityRole( "Description for the second role", "second_role" );
    postProcess.commit();
    System.out.println( "Done." );
    private final File _earFile;
    private final ArrayList _securityRoles = new ArrayList();
    public PostProcessEAR( String earFile )
    _earFile = new File( earFile );
    public void addSecurityRole( String description, String roleName )
    if ( roleName == null )
    throw new IllegalArgumentException();
    _securityRoles.add( description );
    _securityRoles.add( roleName );
    * Write out modified EAR file.
    public void commit() throws IOException
    if ( _securityRoles.size() == 0 )
    return;
    final ZipFile zipFile = new ZipFile( _earFile );
    final Enumeration entries = zipFile.entries();
    final File outFile = new File( _earFile.getAbsolutePath() + ".out" );
    final ZipOutputStream out = new ZipOutputStream( new BufferedOutputStream( new FileOutputStream( outFile ) ) );
    while ( entries.hasMoreElements() )
    final ZipEntry entry = (ZipEntry) entries.nextElement();
    final InputStream in = zipFile.getInputStream( entry );
    if ( "META-INF/application.xml".equals( entry.getName() ) )
    final XMLDocument modifiedApplicationXml = insertSecurityRoles( in );
    final ByteArrayOutputStream byteOutput = new ByteArrayOutputStream();
    modifiedApplicationXml.print( byteOutput );
    final int numBytes = byteOutput.size();
    entry.setSize( numBytes );
    if ( entry.getMethod() == ZipEntry.STORED )
    entry.setCompressedSize( numBytes );
    final CRC32 crc32 = new CRC32();
    crc32.update( byteOutput.toByteArray() );
    entry.setCrc( crc32.getValue() );
    out.putNextEntry( entry );
    byteOutput.writeTo( out );
    else
    // Copy all other zip entries as they are.
    out.putNextEntry( entry );
    copy( in, out );
    in.close();
    out.close();
    private XMLDocument insertSecurityRoles( InputStream in ) throws IOException
    final DOMParser domParser = new DOMParser();
    domParser.setAttribute( DOMParser.STANDALONE, Boolean.TRUE );
    try
    domParser.parse( in );
    final XMLDocument doc = domParser.getDocument();
    final Element docElem = doc.getDocumentElement();
    final Iterator iter = _securityRoles.iterator();
    while ( iter.hasNext() )
    final String desc = (String) iter.next(); // might be null
    final String roleName = iter.next().toString(); // must not be null
    final Element securityRoleElem = doc.createElement( "security-role" );
    if ( desc != null )
    securityRoleElem.appendChild( createPcdata( doc, "description", desc ) );
    securityRoleElem.appendChild( createPcdata( doc, "role-name", roleName ) );
    docElem.appendChild( securityRoleElem );
    return doc;
    catch ( SAXException e )
    e.printStackTrace();
    return null;
    private Element createPcdata( XMLDocument doc, String elemName, String pcdata )
    final Element elem = doc.createElement( elemName );
    elem.appendChild( doc.createTextNode( pcdata ) );
    return elem;
    private final byte[] buffer = new byte[4096];
    private void copy( InputStream in, OutputStream out ) throws IOException
    while ( true )
    final int bytesRead = in.read( buffer );
    if ( bytesRead < 0 )
    break;
    out.write( buffer, 0, bytesRead );

  • How to include the first row of detail in every xquery transformed xml?

    I am dealing with a XML file,where i need to publish to different BS.
    First node will be a common node node which contains vital info,second node goes to one BS and third goes to another BS.
    *<header></header>*
    *<details></details> (they are unbounded, but the first detail tag which comes in the input file is a mandatory tag in such a way that it needs to be included in every transformed message)*
    *<trailer></trailer>*
    We need to apply x query transformation on it in such a way:
    *</header></header>*
    *<1st detail></1st detail>*
    *<detail></detail> (2nd row of detail in input file)* -------------------------> Goes to BS1
    *<trailer></trailer>..*
    *<header></header>*
    *<1st detail></1st detail>*
    *<detail></detail> (3rd row of detail in input file)* ----------------------------->Goes to BS2
    *<trailer></trailer>*..
    And so on.
    Now, the problem is how to include the first row( *1st detail* ) of detail in every xquery transformed xml?

    are you looping of this input with a for each?
    /yourdata/details[1] should return always the first detail element.
    or before the for each do an assing of this first detail element to "generic_details_var"
    and use this var in every looping iteration (in an assign or as input for xquery)

  • How to include the file name as an XML field

    Hi,
    I'm using a file adapter for process a flat file and convert it into an XML. Does anybody knows how to include the file name into an XML field.
    Ex.
    I process the file named <b>XXIMN21022007.txt</b> and I need an XML like:
    <MT_FILE>
    <field1></field1>
    <field2></field2>
    <field3></field3>
    <filename><b>XXIMN21022007.txt</b></filename>
    </MT_FILE>
    Regards
    Gonzalo

    Just go for dynamic configuration.
    Check the sender file adapter to write the filename in the header (as explained in Michal's blog) and then read that header in some mapping.
    U can use that even in simple message mappings.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/03612cdecc6e76e10000000a422035/frameset.htm
    Your code for the filename tag would be something like:
    <i>DynamicConfiguration conf = (DynamicConfiguration) container
        .getTransformationParameters()
        .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create(
        “http://sap.com/xi/XI/System/File”,
        “FileName”);
    return conf.get(key);</i>
    Regards,
    Henrique.

  • I have 100 groups in planning for those 100 groups i want to build roles like interactive,view user,planner etc.for those how to change in export -import folder .xml file  in that edit  how  to change user roles in that xml it will generate automatic id.h

    I have 100 groups in planning for those 100 groups i want to build roles like interactive,view user,planner etc.for those how to change in export -import folder .xml file  in that edit  how  to change user roles in that xml it will generate automatic id.how to do that in xml file ?

    Thanks john for you are reply.
    I had tried what you sad.I open shared service in that foundation project i had export shared service.after that in import-export file.In that role.csv,user.csv,group.csv.Like this file have.When i open user file added some users after i trying save in excel it shown messgse
    I click yes and save the .csv file and import from share servie. i got error like this
    am i doing right way john.or explain clearly

  • WSDL generated from java class - how to include headers?

    I am using the servicegen ant task and generating a web service based on a java class. I would like to include a username and password in the soap header and read that info using a handler. I am able to get that working, but how do I get the auto-generated WSDL to include the username/password header information? Is there something that I have to do in the handler so that this information is included in the WSDL?
    Thanks,
    Mike

    I did do this and I got the following error when deploying to the Stand-alone OC4j:
    Operation failed with error:
    Error compiling
    :D:\h\cots\Oracle\JDeveloper10g10.1.3\j2ee\home\applications\DBOperationsWSApp-DBData-WS\WebServices: Error instantiating compiler: webservice artifact generation failed :oracle.j2ee.ws.common.tools.api.ValidationException : Exception declaration mismatch between Implementation: dbdatapackage.DBDataOperations and Interface: dbdatapackage.DBDataWS. Impl class Method: getData declares exceptions not declared by the interface (java.lang.Exception)
    I am quite sure what it is saying. It generated the code for the Interface: dbdatapackage.DVDataWS. Impl class. Why would it not do it right? What expection is it complaining about? java.lang.Exception?

  • How to include .js file into validater-rules.xml

    iam doing project using struts.
    i have .js file for client side validation.how to include .js file into struts validate-rules.xml so that i can use those validation in my project.
    without writing any class.
    is there any way

    copy + paste from my book...............
    Enabling Client-Side Validations
    In addition to providing a framework for simplifying server-side form data validations, Validator provides an easy-to-use mechanism for performing client-side validations. Each validation routine defined in the validator-rules.xml file optionally specifies JavaScript code that can be run in the browser (client side) to perform the same validations that take place on the server side. When run on the client side, the validations will not allow the form to be submitted until they have all passed.
    To enable client-side validation, you have to place the HTML Tag Library's javascript tag in each JSP for which you want validation performed, as shown here:
    <html:javascript formName="logonForm"/>
    The javascript tag requires that you use the formName attribute to specify the name of a <form> definition from the validation.xml file, as shown here, for which you want validations performed:
    <form name="logonForm">
    <field property="username" depends="required">
    <arg0 key="prompt.username"/>
    </field>
    <field property="password" depends="required">
    <arg0 key="prompt.password"/>
    </field>
    </form>
    All the validations that you have specified for the <form> definition to run on the server side will be run on the client side.

  • How to include  % in xml document element

    I am not able to figure how to include % in xml elements
    ex:
         <ITEM> 90% of people</ITEM>

    The error message suggests that the % is not in a text node, like your example, but in an element name -- where it is not permitted. Perhaps you could post the actual XML document that causes the error, or at least the part of it that contains the % character.

  • How to trigger xml publisher API (ex:Delivering Documents via e-Mail)?

    Dear All:
    How to use xml publisher API ?
    In user's guide always talk API's code.(ex:Delivering Documents via e-Mail
    // create delivery manager instance
    DeliveryManager dm = new DeliveryManager();
    // create a delivery request
    DeliveryRequest req =
    dm.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);
    // set email subject
    req.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT, "Invoice");
    // set SMTP server host
    req.addProperty(
    DeliveryPropertyDefinitions.SMTP_HOST, "mysmtphost");
    // set the sender email address
    req.addProperty(DeliveryPropertyDefinitions.SMTP_FROM,
    "[email protected]");
    // set the destination email address
    req.addProperty(
    DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS,
    "[email protected], [email protected]" );
    // set the content type of the email body
    req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE,
    "text/html");
    // set the document file name appeared in the email
    req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME,
    "body.html");
    // set the document to deliver
    req.setDocument("/document/invoice.html");
    // submit the request
    req.submit();
    // close the request
    req.close(); )
    Not say how to use this code to account effect !!
    Having anybody to use API before?
    Please tell me how to use that,thanks!!
    BY Emily_ye

    Hi Emily
    I had the same question. After much research and a lot of deduction I produced the following:
    import oracle.apps.fnd.cp.request.*;
    import java.io.*;
    import java.sql.*;
    import java.util.Vector;
    import oracle.apps.fnd.util.*;
    import oracle.apps.xdo.XDOException;
    import oracle.apps.xdo.common.pdf.util.PDFDocMerger;
    import oracle.apps.xdo.delivery.DeliveryException;
    import oracle.apps.xdo.delivery.DeliveryManager;
    import oracle.apps.xdo.delivery.DeliveryPropertyDefinitions;
    import oracle.apps.xdo.delivery.DeliveryRequest;
    import oracle.jdbc.driver.OracleCallableStatement;
    public class RunTravProgram implements JavaConcurrentProgram {
    CpContext mCtx; // global reference to concurrent program context
    LogFile logFile; // global reference to context logfile
    OutFile outFile; // global reference to context outfile
    Connection mConn = null;
    ReqCompletion lRC;
    //File Separator
    private String mFileSeparator;
    // globals for template
    String XDOAppShortName = "";
    String XDOtemplateCode = "";
    // hard-wired constants for template addition
    final String XDOLanguage = "en";
    final String XDOTerritory = "US";
    final String XDOFinal_format = "PDF";
    final String XDOtemplateType = "TEMPLATE_SOURCE";
    String PDFFile = "";
    String outFilePath = "";
    String progShortName = "";
    String progDesc = "";
    Integer iRequestID = 0;
    String sWatermark = ""; // watermark text
    String emailAddress = ""; // Not Implemented
    String emailServer = "";
    public static final String M_SUCCESS = "SUCCESS";
    public static final String M_ERROR = "ERROR";
    public static final String M_WARNING = "WARNING";
    * Create a Java FND ConcurrentRequest objec to call fnd_request.submit_request
    * The first three parameters are:
    * Application Short Name -- Application Short name (ie. WAHC)
    * Current Program Short Name -- Concurrent Program being called
    * Current Program Description -- description for above
    * These should be the first three parameters passed by the concurrent
    * program in this order. The next two are constants set to null
    * These are followed by the parameters passed by the first concurrent
    * program that are being passed to the next concurrent program.
    * I am limiting the parameter list to ten for now.
    // Dynamic PLSQL statement used to get a concurrent request completion status
    // This is necessary because the java class does not provide this method :-(
    String mGetCompleteStatus =
    "DECLARE R_VAL BOOLEAN; " + "b_phase VARCHAR2 (80) := NULL; " +
    "b_status VARCHAR2 (80) := NULL; " +
    "b_dev_phase VARCHAR2 (80) := NULL; " +
    "b_dev_status VARCHAR2 (80) := NULL; " +
    "b_message VARCHAR2 (240) := NULL; " + "BEGIN " +
    "r_val := fnd_concurrent.wait_for_request (:1,5,1000," +
    "b_phase,b_status,b_dev_phase,b_dev_status,b_message); " +
    ":2 := b_phase; " + ":3 := b_status; " + ":4 := b_message; " + "end;";
    public RunTravProgram() {
    // no constructor necessary for now
    * Concurrent Processing provides an interface 'JavaConcurrentProgram' with abstract method
    * runProgram() which passes the concurrent processing context 'CpContext'. The concurrent
    * program developer will implement all of their business logic for a concurrent program in
    * runProgram(). The main() method, implemented by AOL, will call runProgram() after
    * performing all of the required initialization for the concurrent program, including
    * establishing a database connection, initializing the required contexts, and setting up
    * the log and output files. CpContext will have the request specific log and output
    * file input methods
    public void runProgram(CpContext pCpContext) {
    mCtx = pCpContext;
    OracleCallableStatement lStmt = null;
    boolean bCompletion = true;
    String sPhase = "";
    String sStatus = "";
    String sMessage = "";
    //get handle on request completion object for reporting status
    lRC = pCpContext.getReqCompletion();
    // assign logfile
    logFile = pCpContext.getLogFile();
    // assign outfile
    outFile = pCpContext.getOutFile();
    // assign fileseparator
    mFileSeparator = getFileSeparator();
    // get the JDBC connection object
    mConn = pCpContext.getJDBCConnection();
    outFilePath =
    ((new File(outFile.getFileName())).getParent() == null ? "" :
    (new File(outFile.getFileName())).getParent() +
    mFileSeparator);
    logFile.writeln("OutFile File Path: -> " + outFilePath, 0);
    // get parameter list object from CpContext
    // these come from the concurrent program
    ParameterList lPara = pCpContext.getParameterList();
    // create a temporary array and retrieve the parameters created by
    // the program. Currently limiting the number of parameters to 10 for now
    String pvals[] = new String[10];
    int pcount = 0;
    while (lPara.hasMoreElements()) {
    NameValueType aNVT = lPara.nextParameter();
    pvals[pcount] = aNVT.getValue();
    pcount++;
    if (pcount > 9)
    break;
    // send parameter values to the log file
    logFile.writeln("Arg 1: APPL_SHORT_NAME -> " + pvals[0], 0);
    logFile.writeln("Arg 2: CURR_PROG_SHORT_NAME -> " + pvals[1], 0);
    logFile.writeln("Arg 3: CURR_PROG_DESCRIPTION -> " + pvals[2], 0);
    logFile.writeln("Arg 4: TEMPLATE_CODE -> " + pvals[3], 0);
    logFile.writeln("Arg 5: P_PLANT_CODE -> " + pvals[4], 0);
    logFile.writeln("Arg 6: P_BATCH_NO -> " + pvals[5], 0);
    logFile.writeln("Arg 7: P_SHOW_PROMISE -> " + pvals[6], 0);
    logFile.writeln("Arg 8: P_WATERMARK -> " + pvals[7], 0);
    XDOtemplateCode = pvals[3]; // store the template name globally
    progShortName = pvals[1]; // store the program short name globally
    XDOAppShortName = pvals[0]; // store the application short name
    sWatermark = pvals[7]; // store the watermark globally
    progDesc = pvals[2];
    try {
    // create a concurrent request object
    ConcurrentRequest cr = new ConcurrentRequest(mConn);
    // use the parameters to call fnd_request.submit_request
    cr.addLayout(XDOAppShortName, XDOtemplateCode, XDOLanguage,
    XDOTerritory, XDOFinal_format);
    Vector param = new Vector();
    param.add(pvals[4]); // plant code
    param.add(pvals[5]); // batch ID
    param.add(pvals[6]); // Show SO info flag
    iRequestID =
    cr.submitRequest(XDOAppShortName, progShortName, progDesc,
    null, false, param);
    mConn.commit();
    // send the request ID to the log file
    logFile.writeln("-- Request ID: ->" + Integer.toString(iRequestID),
    0);
    // call fnd_concurrent.wait_for_request to wait until the request
    // has ended - use this to check the request status before proceeding
    lStmt =
    (OracleCallableStatement)mConn.prepareCall(mGetCompleteStatus);
    lStmt.setInt(1, iRequestID);
    lStmt.registerOutParameter(2, java.sql.Types.VARCHAR, 0, 255);
    lStmt.registerOutParameter(3, java.sql.Types.VARCHAR, 0, 255);
    lStmt.registerOutParameter(4, java.sql.Types.VARCHAR, 0, 255);
    lStmt.execute();
    // get the results of the completion
    sPhase = lStmt.getString(2);
    sStatus = lStmt.getString(3);
    sMessage = lStmt.getString(4);
    lStmt.close();
    // send the results of the request processing to the log file
    logFile.writeln("-- Phase: -> " + sPhase, 0);
    logFile.writeln("-- Status: -> " + sStatus, 0);
    logFile.writeln("-- Message: -> " + sMessage, 0);
    // test here to make sure it completed correctly
    if (sPhase.equals("Completed") && sStatus.equals("Normal")) {
    // construct the PDF file name generated by the called request
    PDFFile = progShortName + "_" + iRequestID + "_1.pdf";
    // add a watermark to the generated PDF
    // create an output stream for the existing PDF
    // and set ouput to append
    OutputStream pdfout =
    new FileOutputStream(outFilePath + PDFFile, true);
    // create an inputstream array (required by calling method)
    InputStream pdfin[] = new InputStream[1];
    pdfin[0] = new FileInputStream(outFilePath + PDFFile);
    // add the watermark passed as a parameter
    bCompletion = addWatermark(pdfin, pdfout);
    // assign the modified file to the context out
    // this will print using this request
    if (bCompletion)
    outFile.setOutFile(outFilePath + PDFFile);
    // release the connection object
    // and set the completion status for the request
    if (bCompletion) {
    pCpContext.getReqCompletion().setCompletion(ReqCompletion.NORMAL,
    } else {
    lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
    pCpContext.releaseJDBCConnection();
    } catch (SQLException s) {
    logFile.writeln("SQL Error: Exception thrown w/ error message: " +
    s.getMessage(), 0);
    lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
    pCpContext.releaseJDBCConnection();
    } catch (IOException ioe) {
    logFile.writeln("IO Error: Exception thrown w/ error message: " +
    ioe.getMessage(), 0);
    lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
    pCpContext.releaseJDBCConnection();
    } catch (Exception e) {
    logFile.writeln("General Exception: " + e.getMessage(), 0);
    lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
    pCpContext.releaseJDBCConnection();
    } finally {
    try {
    if (lStmt != null)
    lStmt.close();
    pCpContext.releaseJDBCConnection();
    } catch (SQLException e) {
    logFile.writeln(e.getMessage(), 0);
    lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
    * addWatermark()
    * @param pdfin
    * @param pdfout
    * @return boolean
    * This method will work for an existing document or a newly generated
    * one. Set the outputstream append flag to false for a new document
    * and true for an existing one.
    * NOTE: PDFDocMerger requires an inputstream array even if it only
    * contains one document.
    private boolean addWatermark(InputStream[] pdfin, OutputStream pdfout) {
    if (!sWatermark.equals("")) {
    try {
    PDFDocMerger docMerger = new PDFDocMerger(pdfin, pdfout);
    //docMerger.setTextDefaultWatermark(sWatermark);
    docMerger.setTextWatermark(sWatermark, 80f, 50f);
    docMerger.setTextWatermarkAngle(25);
    docMerger.setTextWatermarkColor(1.0f, .50f, .50f);
    docMerger.setTextWatermarkFont("Garamond", 100);
    docMerger.process();
    docMerger = null;
    return true;
    } catch (XDOException e) {
    logFile.writeln("Watermark process Failed: " + e.getMessage(),
    0);
    return false;
    return true;
    * Returns the file separator
    private String getFileSeparator() {
    return (System.getProperty("file.separator"));
    * EBSEmailDelivery
    * @return
    * Just for testing right now.
    private boolean EBSEmailDelivery() {
    if (!emailAddress.equals("")) {
    try {
    // create delivery manager instance
    DeliveryManager delMgr = new DeliveryManager();
    // create a delivery request
    DeliveryRequest delReq =
    delMgr.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);
    // set email subject
    delReq.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT,
    "EBS Report:" + progDesc +
    " for request: " + iRequestID);
    // set SMTP server host
    delReq.addProperty(DeliveryPropertyDefinitions.SMTP_HOST,
    emailServer); // need to supply the email smtp server
    // set the sender email address
    delReq.addProperty(DeliveryPropertyDefinitions.SMTP_FROM,
    emailAddress);
    // set the destination email address
    delReq.addProperty(DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS,
    emailAddress);
    // set the content type of the email body
    delReq.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE,
    "application/pdf");
    // set the document file name appeared in the email
    delReq.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME,
    PDFFile);
    // set the document to deliver
    delReq.setDocument(outFilePath + PDFFile);
    // submit the request
    delReq.submit();
    // close the request
    delReq.close();
    return true;
    } catch (DeliveryException de) {
    logFile.writeln("email process Failed: " + de.getMessage(), 0);
    return false;
    return true;
    This is the class for a JCP I created to perform the following:
    1) Launch an existing Concurrent Program that produces PDF output
    2) Grab the PDF and apply a watermark based on user input or conditions
    3) associate the modified PDF to CP output for PASTA printing
    It isn't elegant but it is fairly simple. I added the email capability and tested it but am not implementing it at the present time.
    there is a fair amount of information out there that explains how to create a JCP councurrent program but very little that demonstrates the class needed.
    I hope this helps

Maybe you are looking for

  • My iCal calendar no longer syncs with my iPhone

    I bought an iPhone and an iMac just recently.  For the last two weeks they have been syncing whenever they ar both in the same WiFi network.  But latrely, they no longer sync when I change something in either calendar.  Any idea why?  They are both s

  • Which is better for gaming?

    Which is a better gaming solution - quad-core i7 w/ Intel HD4000 (ala new Mac Mini) or my existing setup of dual core i5 and NVIDIA GeForce GT 330M? Obviously the faster processor is huge, but does the dedicated GPU make up for it when it comes to ga

  • Iphotos and apple TV

    I am struggling getting my iphotos off of my iMAC to my Apple TV.  I understand that you need to go through Itunes...and I believe the problem may be in the name of the accounts.  We have one User ID for our Apple TV/iMac and another user id for Itun

  • Messages are getting posted repeatedly

    Hi Friends, I am doing RFC to File scenario, I am placing a comma sepearated file with Timestamp. When ever my Program in R/3 get executed it is wrting data to XI using Trfc , and i am getting file in Receiver side. But the problem is After this i am

  • DW* + FWCS3 Help

    Help! Am I overlooking something? I have DW8 and just installed Fireworks CS3. When I open either of the Commands "Optimize in Fireworks" or "Create a Web Photo Album" I get the message "This command required that Fireworks 4 or later must be install