Email sending through java callout in osb

In osb -- proxy service -- service callout -- i am getting a value using dbadapter select
Then i am using if then condition to perform some operations
After this step i need to notify this value to a user saying ... the account balance is this much
In our project already there is a java callout program to send emails to the concerned people ... it is used to notify some other thing like reprocessing activity etc., which was previously developed.
If i want to use that java callout option to send emails ... do i need to write a new java method and use that class file in this email sending java program and route my program to this service
Will this work ?
Thanks,
Rahul

do i need to write a new java method and use that class file in this email sending java program and route my program to this serviceYou may directly re-use that existing Java callout if it exposes a static method for starting execution. If it does not expose a static method, then you may write your own class which exposes a static method to be called by OSB, and from that method you may invoke your existing Java callout.
Regards,
Anuj

Similar Messages

  • How to Handle Multiple Thread in JAVA Callout with OSB 11g

    Hi Team,
    With My OSB 11g, I want create a static Thread when Java callout.
    Java code as below.
         private static Thread thread;
    static {
              * lazy load thread and with thread-safe ensure
              if(thread == null){
                   synchronized (HornetQConnectionHelper.class) {
                        thread = new ConnectionRecoveryThread();
                        // Daemon thread, JVM level, Won't be interrupted, Safe!
                        thread.setDaemon(true);
                        thread.start();
    When this class was first called in OSB, the thread start run. while when I redeploy it, the old Thread is still running, if call the class again, it will create a new Thread. The two threads will run at the same time.
    Any body know how do configure it, so that there is only one static Thread in the Weblogic JVM.
    Thanks.
    Best Regards,
    Raysen Jia

    Hi Raysen Jia,
    Create a weblogic startup class... See the references bellow...
    Hope this is helpful...
    http://jagadesh4java.blogspot.com.au/2010/05/working-with-weblogic-startup-shutdown.html
    http://docs.oracle.com/cd/E23943_01/upgrade.1111/e10126/basic_upgrade.htm#FUPAS464
    Cheers,
    Vlad

  • Including library dependency for Java Callout in OSB Proxy

    Hi,
    I have a simple question for which a simple answer is eluding me:
    I have developed a simple Java Callout for us in a proxy message flow and that Java class has a dependency on the Commons IO library but for the life of me I can see how I can ensure the proxy is deployed with the library in the classpath because when I perform a simple publish and test the service I get the exception:
    <8/06/2009 10:22:27 AM NZST> <Error> <OSB Transform> <BEA-382515> <Callout to java method "public static void com.oracle.mtm.tools.Archiver.archive(byte[],java.lang.String)" resulted in exception: null
    java.lang.reflect.InvocationTargetException
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at etc...
    java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
         at etc...
    i.e. the Commons IO (e.g. org/apache/commons/io/FileUtils) is not in the classpath.
    There must be a simple way of declaring this dependency or something and have the library loaded but I can't find it.
    Any help much appreciated!

    Well I managed to answer my own question in the end. It's simply a matter of selecting jar dependencies from other jars which can be done by double clicking ("opening") the jar within the OSB Conf project which opens a jar dependencies dialogue box. As expected it's easy when you know how...

  • Java Callout in OSB failing with null pointer exception

    Hi,
    We have a requirement where we need to convert XML String to org.apache.xmlbeans.impl.values.XmlAnyTypeImpl type using java-callout, but value is not getting set when we are trying to do the same. Below is the code we are using in the java callout:
    byte [] bArray = xml.getBytes();
    InputStream is = new ByteArrayInputStream(bArray);
    Reader reader = new InputStreamReader(is,"UTF-8");
    InputSource iss = new InputSource(reader);
    iss.setEncoding("utf-8");
    xmlNode1 =
    DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(iss);
    XmlAnySimpleType xmlObj = XmlAnySimpleType.Factory.parse(n);
    xmlAnyTypeImpl.set_newValue(xmlObj);
    Node resNode = xmlAnyTypeImpl.getDomNode();
    Can someonce please help for the same.
    Regards,
    Soumik

    First check whether the java class that is called is able to read the string message that is passed by the proxy service.

  • Problem with java callout in OSB

    Hi guys,
    i have a java class and when i am using that java class in osb using the java call out it is not returning the output.
    My java class contains 2 parameters and return a string , when i am running the java program its working fine where as my osb is not returning anything.
    I am passing the values to my parameters as xs:string('Transmission') and xs:string('sub_battery') , i tried in different ways of to pass the value to both the parameters still not returning anything.
    please help me out in resolving this problem.
    Thanks in advance.
    Regards,
    Shaik

    if you put logging in the java methods, do you see this output, in other words, does the call from osb to java work ?

  • HTML tags  in emails sent through java

    Hi all,
    I am trying to send an email through my java code. I have set the content type of email to html. It is working fine for the html tags like <tm>,<head>,<table>,<td> etc but it is not working for the tabs whic set color ,border etc. <font color=#fffd"dd> ,<table border ="10"> etc
    How to enable this tags in java. What kind of API's i need to use for it.
    Hope my question is clear to all of you.
    Any pointers in this regard will be very helpful.
    Thanks,
    Abhishek chowdhury

    I am trying to send an email through my java code.No problem. As long as you construct the message correctly it should work.
    I have set the content type of email to html. It is working fine for the html tags like <tm>,<head>,<table>,<td> etc but it is not working for the tabs whic set color ,border etc. <font color=#fffd"dd> ,<table border ="10"> etcSo you haven't constructed them correctly.
    How to enable this tags in java.Java neither knows nor cares what is in a message body that it is sending. It is up to you.
    What kind of API's i need to use for it.I doubt that you need any APIs. Just construct the HTML correctly.
    Hope my question is clear to all of you.It's not, because the problem has nothing to do with Java and everything to do with your programming.

  • Email sending through coding

    Hai friends,
    I want to send an email through an internal table, but by using fm SO_NEW_DOCUMENT_ATT_SEND_API1 it is not working.
    Pl send me the complete coding for sending email from an internal table.
    Thanks,
    vamsykrishna.

    *& Report  ZNNR_EMAIL
    REPORT  ZNNR_EMAIL.
    PARAMETERS: psubject(40) type c default 'Hello',
    p_email(40) type c default '[email protected]' .
    data: it_packing_list like sopcklsti1 occurs 0 with header line,
    it_contents like solisti1 occurs 0 with header line,
    it_receivers like somlreci1 occurs 0 with header line,
    it_attachment like solisti1 occurs 0 with header line,
    gd_cnt type i,
    gd_sent_all(1) type c,
    gd_doc_data like sodocchgi1,
    gd_error type sy-subrc.
    data: it_message type standard table of SOLISTI1 initial size 0
    with header line.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    Perform populate_message_table.
    *Send email message, although is not sent from SAP until mail send
    *program has been executed(rsconn01)
    PERFORM send_email_message.
    *Instructs mail send program for SAPCONNECT to send email(rsconn01)
    perform initiate_mail_execute_program.
    *& Form POPULATE_MESSAGE_TABLE
    Adds text to email text table
    form populate_message_table.
    Append 'Email line 1' to it_message.
    Append 'Email line 2' to it_message.
    Append 'Email line 3' to it_message.
    Append 'Email line 4' to it_message.
    endform. " POPULATE_MESSAGE_TABLE
    *& Form SEND_EMAIL_MESSAGE
    Send email message
    form send_email_message.
    Fill the document data.
    gd_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
    gd_doc_data-obj_langu = sy-langu.
    gd_doc_data-obj_name = 'SAPRPT'.
    gd_doc_data-obj_descr = psubject.
    gd_doc_data-sensitivty = 'F'.
    Describe the body of the message
    clear it_packing_list.
    refresh it_packing_list.
    it_packing_list-transf_bin = space.
    it_packing_list-head_start = 1.
    it_packing_list-head_num = 0.
    it_packing_list-body_start = 1.
    describe table it_message lines it_packing_list-body_num.
    it_packing_list-doc_type = 'RAW'.
    append it_packing_list.
    Add the recipients email address
    clear it_receivers.
    refresh it_receivers.
    it_receivers-receiver = p_email.
    it_receivers-rec_type = 'U'.
    it_receivers-com_type = 'INT'.
    it_receivers-notif_del = 'X'.
    it_receivers-notif_ndel = 'X'.
    append it_receivers.
    Call the FM to post the message to SAPMAIL
    call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    exporting
    document_data = gd_doc_data
    put_in_outbox = 'X'
    importing
    sent_to_all = gd_sent_all
    tables
    packing_list = it_packing_list
    contents_txt = it_message
    receivers = it_receivers
    exceptions
    too_many_receivers = 1
    document_not_sent = 2
    document_type_not_exist = 3
    operation_no_authorization = 4
    parameter_error = 5
    x_error = 6
    enqueue_error = 7
    others = 8.
    Store function module return code
    gd_error = sy-subrc.
    Get it_receivers return code
    loop at it_receivers.
    endloop.
    endform. " SEND_EMAIL_MESSAGE
    *& Form INITIATE_MAIL_EXECUTE_PROGRAM
    Instructs mail send program for SAPCONNECT to send email.
    form initiate_mail_execute_program.
    wait up to 2 seconds.
    if gd_error eq 0.
    submit rsconn01 with mode = 'INT'
    with output = 'X'
    and return.
    endif.
    endform. " INITIATE_MAIL_EXECUTE_PROGRAM

  • Email sending through scenario

    I want to send email using scenario.
    When im selecting the dynamic path for template, its giving an error File not found. Also can anyone tell me the steps to be followed for sending email.
    i have read the document, but still facing issue.

    You need to check the URL that is getting formed for your email template JSP. It should be accessible otherwise you will get the error. When sending email through scenarios make sure that you have correctly configured CollectiveEmailSender and IndividualEmailSender components within the config layer of your application module. Both of these need to be at the path <YOUR_APP_MODULE>\config\atg\scenario and should have correctly configured contextPathPrefix property.
    If within your scenario you are giving the path to your email template JSP with your context-root like as <context-root>/email/templates/mail.jsp then you can set contextPathPrefix in the two components as:
    contextPathPrefix^=/Constants.null
    In case you are using the email template JSP path within your scenario without your context-root like as /email/templates/mail.jsp then you need to set contextPathPrefix property as:
    contextPathPrefix=<your-context-root>

  • Validation failed for ArchiveClassLoaderDerivedType- Java callouts from OSB

    Even though jar file for java classes are present, I am receiving the following error sometimes:
    com.bea.wli.config.component.NotFoundException: Validation failed for ArchiveClassLoaderDerivedType ..Referenced component (ArchiveClassLoaderDerivedType ../../Java/.._ArchiveClassLoaderDerivedType) not found.
    When I bounce the server then it works, but I can't bounce the server in production. Do anybody know why this is happening?

    Unfortunately ALSB/OSB does not seem to honour JAR files packaged in your JAR and referenced by the manifest Class-Path attribute. As well, the JAR files deployed into a project cannot reference each other. As such, you either have to open the library JAR and stick it into the one you are deploying or to put it on the server classpath via the domain lib (you do not need to edit the start scripts). This is definitely a hole in the capabilities of OSB.

  • Java callout in OSB not showing available methods

    Hi,
    I've made a simple jar which contains a class with a static method which connects to our active directory. I'm using Spring to connect to the ad. The jar is build using maven. When i've build the jar, I have copied it to a Jar directory in my OSB project. I've created a JavaCallout action in which I can select the jar but it doesnt seem to recognize my static method......there are no methods I can select!
    Can anyone maybe tell me what is wrong here?
    I've compiled the Jar using jdk1.5. Im using 11G ps2. The method takes a String as Input and returns a List.
    Thanks in advance!

    The ActiveDirectoryAdapterException is a wrapper class which I made to wrap exceptions thrown while connecting to the AD. This class is located in the jar.
    I have stripped the method down to its most simplest form like you said.
    I have this method on my class:
    * Enable a user
    * @param aUsername
    public static void enableUser(String aUsername) {
         createDao().enableUser(aUsername);
    }and it still is not seen by OEPE. The weird thing is that it does see another class which has a public static void main(String[] args) throws Exception.
    There is no difference between them except that they are in different packages.

  • BPEL Invoke from B2B through Java Callout

    Hi,
    I would like to know if its possible to invoke a BPEL process from B2B other than AQ. I need not pass any payload to BPEL , I just want to invoke a BPEL process.
    Thanks,
    Phani

    It is possible to inovoke BPEL from a call out, however it is not preferred and supported approach. Apart from AQ, we also have File, FTP and JMS integration with BPEL.
    HTH.
    Rgds,Ramesh

  • Problem in delivering Picture Messages through Java SMPP client

    I m working on development of SMPP Client, using Java. In it�s development I didn�t used any API from eny vendor, and implemented purely in Java. I am facing one unusual problem in receiving of Picture Messages. Also, I have one C based client application.
    I m sending picture message through both client application(s) to be delivered over different handset(s). I have tested many different cases, but could not conclude to any solution. The behavioral cases are as follows;
    When I sent same picture message through Java SMPP client on Nokia 1100, it get received with prompt �Picture Message Received�. And on viewing it, �Message cannot be displayed�, is informed and no picture message get displayed. Till now it happens for every caseto this handst, but get properly displayed on Nokia 32xx / 53xx.
    Whereas while sending through the C SMPP Client on Nokia 1100, sometime it get displayed and sometimes it doesn�t. Same prompts follows on not receiving right picture message while using Java SMPP Client
    I m not understanding why;
    It doesn�t get delivered correctly a picture message, every time I submits it to deliver on 1100 while sending through C based,
    And why It doesn�t get delivered correctly at all while sending through Java SMPP client on 1100 whereas it get delivered correctly over other Nokia model handset.
    Kindly, anyone make me solve out the prob���.

    Hi,
    Even we have implemented the Java SMPP client, to sending the picture message as embeded SMS.
    If you do not have issue to share the SMPPClient which is sending the picture message, I can look into the code and help you. Let me know, I can share my personal email id.
    Edited by: sanmetalica on Apr 14, 2008 6:01 AM

  • OSB: send dateTime do Java Callout method

    Hi,
    I have a method in Java that receives a parameter of type java.util.Date and I want to invoke that method in an OSB Java Callout Activity.
    I receive in the OSB 11g service input an element of type xs:dateTime and I want to send it to the Java method this element. But it always result in exception: argument type mismatch java.lang.IllegalArgumentException: argument type mismatch.
    Is there a way to pass this element to Java Callout without having to pass first a string and then convert to java.util.Date?

    bad news
    http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/eclipsehelp/ui_ref.html#wp1290279
    java.util.Date is not supported

  • Issue with sending mail through java stored procedure in Oracle

    Hello
    I am using Oracle 9i DB. I created a java stored procedure to send mail using the code given below. The java class works fine standalone. When its run from Java, mail is sent as desired. But when the java stored procedure is called from pl/sql "Must issue a STARTTLS command first" error is thrown. Please let me know if am missing something. Tried the same code in 11.2.0.2 DB and got the same error
    Error:
    javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. va6sm31201010igc.6
    Code for creating java stored procedure: (T1 is the table created for debugging)
    ==================================================
    create or replace and compile java source named "MailUtil1" AS
    import java.util.Enumeration;
    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    public class MailUtil1 {
    public static void sendMailwithSTARTTLS(String host, //smtp.projectp.com
    String from, //sender mail id
    String fromPwd,//sender mail pwd
    String port,//587
    String to,//recepient email ids
    String cc,
    String subject,
    String messageBody) {
    try{
    Properties props = System.getProperties();
    props.put("mail.smtp.starttls.enable", "True"); // added this line
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", from);
    props.put("mail.smtp.password", fromPwd);
    props.put("mail.smtp.port", port);
    props.put("mail.smtp.auth", "true");
    #sql { insert into t1 (c1) values ('1'||:host)};
    Session session = Session.getDefaultInstance(props, null);
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    #sql { insert into t1 (c1) values ('2')};
    InternetAddress[] toAddress = new InternetAddress[1];
    // To get the array of addresses
    for( int i=0; i < toAddress.length; i++ ) { // changed from a while loop
    toAddress[i] = new InternetAddress(to);
    //System.out.println(Message.RecipientType.TO);
    for( int i=0; i < toAddress.length; i++) { // changed from a while loop
    message.addRecipient(Message.RecipientType.TO, toAddress);
    if (cc!=null) {
    InternetAddress [] ccAddress = new InternetAddress[1];
    for(int j=0;j<ccAddress.length;j++){
    ccAddress[j] = new InternetAddress(cc);
    for (int j=0;j<ccAddress.length;j++){
    message.addRecipient(Message.RecipientType.CC, ccAddress[j]);
    message.setSubject(subject);
    message.setText(messageBody);
    message.saveChanges();
    #sql { insert into t1 (c1) values ('3')};
    Enumeration en = message.getAllHeaderLines();
    String token;
    while(en.hasMoreElements()){
    token ="E:"+en.nextElement().toString();
    #sql { insert into t1 (c1) values (:token)};
    token ="ConTyp:"+message.getContentType();
    #sql { insert into t1 (c1) values (:token)};
    token = "Encod:"+message.getEncoding();
    #sql { insert into t1 (c1) values (:token)};
    token = "Con:"+message.getContent();
    #sql { insert into t1 (c1) values (:token)};
    Transport transport = session.getTransport("smtp");
    #sql { insert into t1 (c1) values ('3.1')};
    transport.connect(host, from, fromPwd);
    #sql { insert into t1 (c1) values ('3.2')};
    transport.sendMessage(message, message.getAllRecipients());
    #sql { insert into t1 (c1) values ('3.3')};
    transport.close();
    #sql { insert into t1 (c1) values ('4')};
    catch(Exception e){
    e.printStackTrace();
    String ex= e.toString();
    try{
    #sql { insert into t1 (c1) values (:ex)};
    catch(Exception e1)
    Edited by: user12050615 on Jan 16, 2012 12:18 AM

    Hello,
    Thanks for the reply. Actually I have seen that post before creating this thread. I thought that I could make use of java mail to work around this problem. I created a java class that succesfully sends mail to SSL host. I tried to call this java class from pl-sql through java stored procedure. That did not work
    So, is this not supported in Oracle ? Please note that I have tested this in both 9i and 11g , in both the versions I got the error. You can refer to the code in the above post.
    Thanks
    Srikanth
    Edited by: user12050615 on Jan 16, 2012 12:17 AM

  • Java Callout with Collections in OSB

    I need return a collection (List) in Java Callout Action, i recive only this content in any variable:
    <con:java-content ref="jcid:15906698:135e486b745:-7f91" xmlns:con="http://www.bea.com/wli/sb/context"/>
    how i do for read or convert to list in OSB message flow ?
    my escenary is, excecute un method in java callout, this method recive a colection and return a collection. i cant view estructur in message flow. only view <con:java-content.....
    can any help me?
    I need your help.
    Regards
    [email protected]

    http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/eclipsehelp/ui_ref.html#sj_uiSplitJoinJavaCalloutProperties
    try returning an Array, it seems more supported than a List :o)

Maybe you are looking for