Creating backend services via Struts plugin

I have a design problem where I'm redeveloping the front end of our application, and in an effort to reduce coupling and preserve tier separation, I've implemented a Struts plugin which is comprised of "service" objects that use the business delegates to return VO's created by EJBs's.
The idea is to minimize tier integration logic in the action classes.
My actual problem is this: I'm instantiating 2 main services upon login in an action (services created by plugin). Both service classes need to access data from the same VO that the middle tier will return. Any suggestions as to how I can have this VO visible to both services without calling the business delegate in the action?
Kind of confusing without seeing code, but any advice is really appreciated.

Both service classes need to access data
from the same VO that the middle tier will return.
Any suggestions as to how I can have this VO visible
e to both services without calling the business
delegate in the action?You can store the value object in the servlet or application context. Both services can get to the object with calling a business delegate.

Similar Messages

  • XI/PI: need to create configuration from backend service interface to file

    Hi All,
    I need to create configuration in which i have to map my backend service interface to file document.
    For example i have interface CreateOrderInformation_Out which is coming from abckend and i want to store those details in a file on external/desktop via XI/PI.
    Can someone guide me with detailed steps involved in this?
    Which communication channel to use?How to create that channel?
    Thanks in advance,
    Regards,
    Ujwal

    Hi,
    your scenario will look like this:
    ECC->XI->File
    From ECC to XI: Use ABAP proxy (no communication channel required)
    From XI to File: Use file adapter (receiver communication channel required).
    For creating proxy: goto transaction sproxy and create proxy of CreateOrderInformation_Out.
    Call this proxy in your code to transfer data to XI/PI.e
    You need to define following objects in PI:
    Inbound receiver interface
    Message Type (includes datatype)
    Refer to SDN and SAP help for step by step tutorials.
    Regards,
    Gourav

  • Hit 500 Internal Error when Creating Net Service Name in Directory via EM

    Dear All
    When I click 'LISTENER_<Full_hostname>' in the General section of Page Database and then click 'Net Services Administration' in the Related Links section of Page Listener through Oracle Enterprise Manger 10g Database Control in order to create Net Service Name in Oracle Internet Directory, I got following 500 Internal Error
    java.lang.RuntimeException: Expecting Vector, Enumeration or array, found oracle.cabo.ui.data.ListDataObjectList
         at oracle.sysman.emSDK.jsp.Utils.getEnumeration(Utils.java:81)
         at oracle.sysman.emSDK.jsp.ChoiceBean.render(ChoiceBean.java:58)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.browser.MultipleSelectionRenderer$SelectorChildrenRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.browser.MultipleSelectionRenderer.renderTableControlBar(Unknown Source)
         at oracle.cabo.ui.laf.browser.SingleSelectionRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderNamedChild(Unknown Source)
         at oracle.cabo.ui.laf.browser.TableRenderer.renderControlBar(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.TableRenderer._renderControlBar(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.TableRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.sysman.emSDK.jsp.TableBean.render(TableBean.java:690)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.browser.HeaderRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.BodyRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.BorderLayoutRenderer.renderIndexedChildren(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.BorderLayoutRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
         at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.browser.PageLayoutRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.DocumentRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.xhtml.DocumentRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.jsps.tags.BaseUINodeTag.__handleFinishedNode(Unknown Source)
         at oracle.cabo.ui.jsps.tags.BaseUINodeTag.doEndTag(Unknown Source)
         at net.netAdmin._jspService(_netAdmin.java:699)
         [net/netAdmin.jsp]
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:347)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:220)
         at oracle.sysman.emSDK.svlt.PageHandler.render(PageHandler.java:773)
         at oracle.sysman.emSDK.svlt.PageHandler.handleRequest(PageHandler.java:396)
         at oracle.sysman.db.net.NetControllerResolver.handleRequest(NetControllerResolver.java:169)
         at oracle.sysman.emSDK.svlt.EMServlet.myDoGet(EMServlet.java:688)
         at oracle.sysman.emSDK.svlt.EMServlet.doGet(EMServlet.java:291)
         at oracle.sysman.eml.app.Console.doGet(Console.java:285)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.sysman.emSDK.svlt.EMRedirectFilter.doFilter(EMRedirectFilter.java:101)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
         at oracle.sysman.db.adm.inst.HandleRepDownFilter.doFilter(HandleRepDownFilter.java:133)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
         at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:269)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:600)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)
    OS version is: Windows 2003 Enterprise Edition Release 2 SP2, which is msdn version built on VM EXSi 3.0
    Platform: x86 (VM EXSi 3.0)
    OIM Infrastructure: OIM_OIF 10.1.4.0.1
    Please let me know how can I fix this problem and if you need anything else please let me know
    Thanks in advance
    Patrick

    user8149666 wrote:
    Dear All
    When I click 'LISTENER_<Full_hostname>' in the General section of Page Database and then click 'Net Services Administration' in the Related Links section of Page Listener through Oracle Enterprise Manger 10g Database Control in order to create Net Service Name in Oracle Internet Directory, I got following 500 Internal ErrorWhat do you mean by "in order to create Net Service Name in Oracle Internet Directory"?

  • Trouble Creating Share Point via 'sharing' Command

    I'm having trouble creating a share point via the command line using the 'sharing' utility. Basically just trying to script the creation of a /WindowsShares/ share via SMB.
    Here is the command:
    <pre class=command>sharing -a /WindowsShares/ -n WindowsShares -s 001 -g 000 -i 00 -o 0 -t 1'</pre>
    It seems like everything works. <pre class=command>sharing -l</pre> shows this:
    <pre class=command>name: WindowsShares
    path: /WindowsShares/
    afp: {
    name: WindowsShares
    shared: 0
    guest access: 0
    inherit perms: 0
    ftp: {
    name: WindowsShares
    shared: 0
    guest access: 0
    smb: {
    name: WindowsShares
    shared: 1
    guest access: 0
    inherit perms: 0
    oplocks: 0
    strict locking: 1
    directory mask: 493
    create mask: 420
    }</pre>
    However, it doesn't seem to write anything to the /etc/smb.conf file... So nothing works.
    If I enter the following in smb.conf the share does work:
    <pre class=command>[WindowsShares]
    oplocks = 0
    map archive = no
    vfs objects = darwin_acls
    path = /WindowsShares
    read only = no
    strict locking = 1
    inherit permissions = 0
    comment = macosx
    create mask = 0644
    guest ok = 0
    directory mask = 0755</pre>
    However, even after entering this information - when I check 'Share Points' within WGM the share IS listed - but the 'Share this item and its contents' is NOT checked and thus, is confusing and can't be modified from WGM.
    Am I missing something when I am creating this share via the CLI?
    I assumed using 'sharing' worked the same way as using WGM and checking 'Share this item and its contents' - that works perfectly.
    I tried this with 10.4.8 and 10.4.9 Server (Universal).
    Any help would be appreciated!

    Hi Gary,
    Thanks for the reply...
    I ran the 'serveradmin' command to discover the SMB settings before and after the change via WGM. I restarted the SMB service as well...
    <pre class=command>S999EDC1:~ root# serveradmin settings smb:\*
    smb:encrypt passwords = yes
    smb:log level = 2
    smb:display charset = "UTF-8-MAC"
    smb:security = "ads"
    smb:deadtime = 5
    smb:hide dot files = "yes"
    smb:guest account = "unknown"
    smb:client ntlmv2 auth = "yes"
    smb:preferred master = no
    smb:defer sharing violations = "no"
    smb:adminCommands:homes = yes
    smb:adminCommands:serverRole = "domainmember"
    smb:adminCommands:ldapRole = "1.1 - hosting a master LDAP directory server\n"
    smb:allow trusted domains = yes
    smb:netbios name = "S999EDC1"
    smb:lanman auth = "YES"
    smb:vfs objects = "darwin_acls"
    smb:wins support = no
    smb:brlm = "yes"
    smb:max smbd processes = 0
    smb:server string = "S999EDC1 OS X Server"
    smb:os level = 8
    smb:domain logons = no
    smb:passdb backend = "opendirectorysam guest"
    smb:dos charset = "CP437"
    smb:realm = "EDU.CBE.AB.CA"
    smb:unix charset = "UTF-8-MAC"
    smb:auth methods = "guest opendirectory"
    smb:local master = no
    smb:domain master = no
    smb:map to guest = "Never"
    smb:use spnego = yes
    smb:printer admin = "@admin, @staff"
    smb:ntlm auth = "YES"
    smb:workgroup = "CBEEDU"</pre>
    The only difference was that smb:workgroup = "CBEEDU" and smb:log level = 2 were reversed. The settings were the same though. Thought that was odd.
    When making the change via 'sharing', there is no change.
    Is there any other documentation on 'sharing' other than the man page and CLI Guide from Apple? I haven't been able to find anything concrete.

  • Browser based InfoPath form deployed on a Claims based Web Application calling a Secure Web Service via Data Connection

    hi,
    We have a Browser based InfoPath Form deployed on a Claims based Web Application. We are tyring to call WCF Services that are secure using Certificates via the Data Connections on Infopath Form.
    Earlier we used to get the Data in BCS External List via the WCF Services and the Data Connections used to get the Data from the BCS External List. Due to Performance Issues, we want to remove the BCS External List and straightaway call the secure WCF Services
    via the Data Connections.
    Have anyone implemented this scenario.
    Thanks
    Ram
    Thanks Ram

    Hi Ram,
    As these are browser based InfoPath forms, you have two options 
    1) Deploy as sandboxed forms
    In this case you have to create a secure store application id and then set the credentials for that account.
    You then have to export the data connection to Data connections library and modify the .udcx file to utilize the newly created secure store application id.
    This may sometime give issues related to sandboxed code service. You have to give permissions on the secure store for the user account which the sandboxed code service is running.
    2) Deploy as administrator approved forms
    This would be ideal way of doing things as you have full control over the web request if you write code behind InfoPath forms.
    3) Deploy as a Hybrid solution
    a) Write a full trust proxy solutions (extend SPProxyOperation class and override execute method) and make the web request call inside this and return the response
    b) Invoke above operation from the sandboxed InfoPath form's code behind by SPUtility.RegisteredProxyOperation(four part assembly name, operation args)
    Hope this helps.
    Thanks,
    Srikanth

  • Creating a service for a daemon

    I'm working on a specialized server daemon in Google's Go language, and have a makefile that I want to have an "install" directive for, that would pu the compiled binary, the document root, the logfile directory, etc, in /opt/gochan/*, and create a service that can be started by running
    systemctl start gochan
    in distros using systemd
    service gochan
    in distros using Upstart, etc.
    How would I go about doing this? What is the best way to make a catch-all method of starting it as a service?

    Why install to /opt?  Why not use the distro's prefered $PREFIX and/or $BINDIR?
    As for systemd service files, there is a wiki page or a man page for that - they are pretty simple.  The upstart equivalent may be in the *buntoo documentation.
    Is the real question here just how to detect which init is used from within a Makefile?  Autotools would probably be the best way.  But a check of /proc/1/comm would be an effective shortcut.
    EDIT: from another perspective, though, distro specific things should be handled by the packaging for that distro.  Your makefile should just allow for different options.  So the systemd service file could be installed via a PKGBUILD or the *buntoo equivalent, or perhaps with different install directives like `make install.systemd` and `make install.upstart`.
    Last edited by Trilby (2013-11-01 21:35:17)

  • Creating a Service User

    I'm trying to create a Service User in the portal.  I've come across this link:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cfdc9e90-0201-0010-6780-cc30206dd319
    On page 7, it says that "Service Users reside only in the database. This can be achieved by settings in the configuration file."
    It then goes on to say that several service users such as cmadmin_service are added by KM.  My question is, how do I add my own service users?  My portal is not using LDAP as a user repository, just the portal DB.
    Thanks,
    Matt

    First, thanks for the reponse -
    Yes - I believe the namespace is $serviceUser$.  Since our portal is not integrated with a user repository like AD, how would I create a service user with appropriate namespace?  Creating users via the User Administration role, I cannot assign the new users to the $serviceUser$ namespace.  Do I have to write some SQL to insert into the user database table?
    Thanks again.

  • [ICSS B2B] Problem  when creating a service request due to language

    Hi everyone.
    We have a web portal based on icss_b2b wich is linked with our backend (CRM).
    On the web portal, we should be able to create service requests and it works fine when we are using english.
    But if we log using german language, when we try to create a service request we have an error and creation ins't done.
    Do we need do to do any configuration in the xcm ? Crm ? to allow to create service request in a new language ?
    Thanks for your help.

    Hi,
    We are facing the same problem, were you able to solve this?
    Our Portal takes the language from the browser but we only want to allow people access to ICSS in French and English.
    Example:
    If browser language = French --> French ICSS
    If browser language = English --> English ICSS
    If browser language = Dutch --> English ICSS (English = default language)
    Many thanks for any feedback.
    Cheers,
    Geert

  • No result while creating a service consumer with Web Service Wizzard

    Hi,
    I've tried to create a service consumer with Web Service Wizzard in SE80 by using URL/HTTP Destination but nothing happens. After the popup with logondata for the WSDL I get the CRM start screen and nothing has been created in the given package.
    technical details:
    I use a CRM 5.0 system with SP15 (SAPKB70015).
    I created the provider service at a 7.10 system with SP5 (SAPKB71005) via SPROXY, SOAMANAGER and WSPUBLISH and get the WSDL-URL from Service Registry.
    The Service Registry of the 7.10 system serves as central Service Registry.
    Has anybody an idea ?
    Christoph

    Guy,
    Thanks for your reply.
    This problem has been solved. Since I haven't turned on everything that to use transaction SOAMANAGER needs. After complete the switch-on works, the problem never happens again.
    Thanks again.

  • How to create Web Service based on PI WSDL message

    Hi all,
    we have following scenario:
    Within PI (version 7.1) we set up a message type and inbound service interface. This service interface should send the PI message to a web service running on a SAP J2EE (version 7.01). As the PI message is sent as WSDL I thought it should be easy to build a web service on the SAP J2EE based on this WSDL from PI.
    Unfortunately, I have problems creating the Web Service.
    For my current project we integrated the NWDI to the SAP NetWeaver Developer Studio and I'm required to add the Web Service to an existing DC (Development Component) within the NWDI.
    What I tried so far is:
    - I created a Deployable Proxy Project and within this I created a Client Proxy Definition based on the WSDL from the PI. But I can't add this Proxy to the DCs of the NWDI and I don't know how to implement my own coding here in order execute specific functions.
    - I created a new class within the NWDI DC and a public method. Based on this I created a Virtual Interface and a Web Service Definition (WSD). Then I added this to a Web Service Deployment Descriptor. I uploaded this to the SAP J2EE. But I'm not able to access this and I don't know hoe to assign the WSDL here.
    I also tried here to create a client proxy based on this WSD as I thought I might assign the WSDL here. But I don't see the WSD in the list of Web Services uploaded to the SAP J2EE...
    Can you please advice me how to create a Web Service in such an environment?
    regards
    René Jurmann

    Hi Tahir,
    sorry that you needed to wait this long - but this is how I created the web service:
    The steps on how to create the web service in NetWeaver Developer studio are nearly the same as described in the blog http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/5838. [original link is broken] [original link is broken] [original link is broken]
    Some steps I just skipped and some others I added. Some of the steps I did the way I described it as I needed to connect the web service with the SAP PI.
    Prerequisites:
    Add Java Perspective and J2EE Development Perspective to the open perspectives.
    Within "Window - Preferences - Web Services" check "Soap extensions visible in the virtual interface editor"
    The SDM of the corresponding SAP J2EE is configured within "Window - Preferences"
    Create a Development Component (DC) with type "J2EE -> EJB Module"
    The business logic of the web service will be implemented in an Enterprise Java Bean (EJB). So first the EJB component must be created:
         Choose "File -> New -> Other"
         In opening PopUp choose "Development Component -> Development Component Project"
         Select the Software Component for which you want to add the DC (e.g. "Local Development -> MyComponents")
         Choose now vendor, name and type:
              vendor is an alpha-numeric string of 20 characters starting with a letter - all in lower case
              name is an alpha-numeric string starting with a letter - all in lower case
              vendor and name concatenated must not be longer then 40 characters
              the name can be separated into different part using "/" as separator
              each part of the name must not be longer than 8 characters
              the type is "J2EE - EJB Module"
              you can specify a Caption as general description for the web service
    Create new EJB
    To create the EJB itself:
         In J2EE DC Explorer of J2EE Development Perspective expand new DC and right-click on folder "ejbModule"
         Choose "New - EJB" with following details:
              EJB Name: <name as for PI service Interface to be created - starting in upper case>
              EJB Project: <pre selected>
              Bean Type: Stateless Session Bean
              Default EJB Package: <corresponds to namespace in PI>
              generate default interfaces: Checked
    Regarding the "Default EJB Package" this should be created according the namespace in PI for which all PI objects will be created. This only applies if you have some naming conventions here.
    Example:
    Namespace in PI is:  http://company.net/pi/SOFTWARE_COMP/Application
    The corresponding package then is: net.company.pi.software_comp.application
    Implement coding for web service
    As the web service will be called via PI some transfer variables will be submitted. Most likely, those variables will not be standard type (e.g. String) but a complex type. Those types must be generated as Java classes. Below an example of a complex type I needed:
    Data Type
    net.company.pi.software_comp.application.types.MessageProcessingInformation
    Structure:
         Element name          Element type
         sendingSystemID          String
         interfaceID               String
         businessProcessVariantCode     String
         testIndicator               Boolean
    For every element described a public "get", "set" and "has" method must be created in the corresponding Java class:
    package net.company.pi.software_comp.application.types;
    import java.io.Serializable;
    public class MessageProcessingInformation implements Serializable {
         protected String sendingSystemID;
         protected String interfaceID;
         protected String businessProcessVariantCode;
         protected Boolean testIndicator;
         public String getSendingSystemID() {
              return sendingSystemID;
         public void setSendingSystemID(String value) {
              this.sendingSystemID = value;
         public boolean hasSendingSystemID() {
              if(sendingSystemID != null && !sendingSystemID.equals("")){
                   return true;
              return false;
    All Java classes representing complex types and all classes referenced here (used for sub-types) must implement java.io.Serializable. Java standard types which do not implement this class must not be used as sub-types.
    As soon as all data types are declared the real business logic can be implemented:
         In J2EE DC Explorer of J2EE Development Perspective expand DC - "ejb-jar.xml" - <Name> and double click on "ejbCreate"
         In detail view select folder "Business Methods" and click "Add"
         choose name of business method - this should be the same as the PI message type used for the service interface - starting lower case
         return type should be "void"
         add needed parameters fully qualified - including package (as specified in PI and created previously in DC)
         you can mark certain parameters as array if necessary
    Remark:
    It might be that after saving you get an error. This might be as the package name of one component is copied to the corresponding Java class at the very beginning (before the package declaration within the Java class). Simply delete the string here.
    It also might be, that the new business method is only defined in the remote interface class but not in the bean class. Just create an according method in the bean class.
    Within the newly created business method within the bean class you can now implement the business logic.
    Create a DC with type "J2EE -> Enterprise Application"
    In order to create the "real" web service and deploy it to the J2EE an Enterprise Application project has to be created. So create a new DC as for the EJB Module but choose as type "J2EE -> Enterprise Application".
    After the DC is created right click on the EJB DC and choose "Add to EAR Project". Choose the new DC.
    Create web service for EJB
    As soon as you implemented the business logic you can create the "real" web service. Therefore:
         Right click on the EJB name below "ejb-jar.xml"
         Choose "New - Web Service"
         Choose proper "Web Service Name" and "Configuration Name" (probably oriented at the EJB name)
         Copy the URL of the web service - you'll need it later for PI configuration
         on the second next screen use the same name for "Virtual Interface" and "Web Service Definition" (the name should be the name of the "Endpoint")
         the "EAR Project" should be preselected
    Unfortunately, the web service can't be used in its current configuration to be accessed by PI. Therefore the Virtual Interface must be changed. To do so, expand folder "Virtual Interfaces" and double click the virtual interface created.
    Within the detail view expand in tabs "Mapping" and "Types" the complete folder structure. For any "SOAP Extension" where a namespace can be defined use as namespace the corresponding namespace in PI (e.g. http://corpintra.net/pi/CBFC_GLOBAL_SAP_APPL/BillerDirect) but do not change any "Soap Extension" of a standard Java type. (if you don't have any naming convetions for namespaces in PI you can leave the SOAP Extension here. But then the namespace in PI should be set accordingly.)
    Probably it can be necessary on top level "Soap Extensions" in tab "Mapping" to leave "Use Namespaces for Parameters" unchecked. For some of my web services this parameter must be checked for others not - just try.
    If you can define a "New Name", "Local Name" or "Item Label" for a Soap Extension then use a name with starting upper case letter. (For Java Naming conventions most of the data type names will start with lower case letters.) Especially the method name must be renamed this way in order to stick to the PI namings.
    As a last point to change here check in tab "Mapping" all "Incoming Parameters" which you specified as array. Use for those as "New Name" a different name - do not just simply change from lower case to upper case. This is necessary as on PI we need to create two levels although here only one is specified.
    For any own sub-type declared as array the name within the coding should also differ from the corresponding Java Class name the type refers to.
    If all this is done you can deploy the web service to the J2EE:
         right click on "Enterprise Application" DC and choose "Development Component - Build..." and build all corresponding components
         right click on "Enterprise Application" DC and choose "Development Component - Deploy"
    Test the new web service via <J2EE URL>/wsnavigator/enterwsdl.html
    Create PI interface
    After the web service is created successfully the PI integration can be started.
    Therefore, within the Enterprise Services Builder create a data type according to the web service definition. All components defined on top-level for this data type should be declared as incoming parameter for the web service business method. Therefore it could be necessary to create some sub data types on PI first and add those to the "master" data type.
    Ensure that the names of the components correspond to the names defined in the web service (see virtual interface here). Those names must exactly be the same - including lower/upper case. Also take care for the ordering of the components.
    In case you need to include arrays following applies:
    The upper level is of occurrence "1:1". This has only one sub-entry with occurrence "1:n". The names for upper and sub-level must not equal.
    Based on the data type a message type is created. The name of the message type must be exactly the same as the name of the web service business method. (Hint: the name of the web service business method was most likely changed in the virtual interface. Then this name must correspond to the message type name.) Based on the message type an asynchronous inbound interface is to be created (which will be referred in the Integration Directory). The operation name for this interface (left panel) should be the same as the name for the web service business method.
    Create PI mappings and routings
    How to map (message mapping and operation mapping) from source to the web service message I wont explain here as this depends on the source message. The only important things here are:
         When creating the SOAP communication channel within the Integration Builder the "Target URL" is:
              <J2EE URL>/<Access URL as specified in web service creation>?wsdl&style=document
         The soap action is the name of the web service business method.
         Most likely the web service needs authentication to be executed.

  • Error while creating Manual Service PO in Extended Classic Scenario

    Hi Experts,
    Extended Classic scenario (SRM 7.0 with ECC 6.0)  While Creating Manual Service PO in SRM i am getting the below mentioned error messages. Can any one suggest what could be the problem.
    Error Msgs:
    1. Backend Error:In case of account assignment, please enter acc. assignment data for item
    2. Backend Error:Purchase order still contains faulty items
    Regards,
    Mohan

    Hi,
    Yes i given all CC and GL information properly in Purchase Order Document for Service.. Still finding the error for Service PO alone.
    Pl do the needful
    Regards,
    Mohan

  • Getting java.lang.NumberFormatException: For input string: "63420;https=127.0.0.1" Error while creating bpel service in oracle soa suite12c

    Hi ,
    I am getting below error when I try to create a bpel project in oracle soa suite 12C, can any one help on this issue why it is happing, earlier am able to create bpel service.
    java.lang.NumberFormatException: For input string: "63420;https=127.0.0.1"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:492)
    at java.lang.Integer.parseInt(Integer.java:527)
    at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.getNewReaderInstance(CachedWSDLReader.java:379)
    at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader$1.initialValue(CachedWSDLReader.java:299)
    at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader$1.initialValue(CachedWSDLReader.java:295)
    at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:160)
    at java.lang.ThreadLocal.get(ThreadLocal.java:150)
    at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.getReaderImpl(CachedWSDLReader.java:309)
    at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.getExtensionRegistry(CachedWSDLReader.java:425)
    at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.readWSDLWithExtensionRegistry(CachedWSDLReader.java:468)
    at oracle.tip.tools.ide.utils.xml.wsdl.WSDLUtil.parseWSDL(WSDLUtil.java:1398)
    at oracle.tip.tools.ide.bpel.v2.datamodels.util.TemplateUtil.createProcessWSDL(TemplateUtil.java:1208)
    at oracle.tip.tools.ide.bpel.v2.designer.builder.model.ProcessBuilderUtil.createWSDLFiles(ProcessBuilderUtil.java:198)
    at oracle.tip.tools.ide.bpel.v2.designer.builder.model.ProcessBuilder.createIDEProject(ProcessBuilder.java:73)
    at oracle.tip.tools.ide.bpel.v2.designer.builder.ui.CreationDialogPanel.doCreate(CreationDialogPanel.java:57)
    at oracle.tip.tools.ide.bpel.shared.designer.processbuilder.ui.BPELCreationDialog.handleOK(BPELCreationDialog.java:199)
    at oracle.tip.tools.ide.bpel.shared.designer.processbuilder.ui.BPELCreationDialog.actionPerformed(BPELCreationDialog.java:239)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6516)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:708)
    at java.awt.EventQueue$4.run(EventQueue.java:706)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
    at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
    at java.awt.Dialog.show(Dialog.java:1082)
    at java.awt.Component.show(Component.java:1655)
    at java.awt.Component.setVisible(Component.java:1607)
    at java.awt.Window.setVisible(Window.java:1014)
    at java.awt.Dialog.setVisible(Dialog.java:1005)
    at oracle.tip.tools.ide.bpel.shared.designer.processbuilder.ui.BPELCreationDialog.display(BPELCreationDialog.java:83)
    at oracle.tip.tools.ide.bpel.shared.designer.manager.BPELDesignerManager.launchCreationDialog(BPELDesignerManager.java:53)
    at oracle.tip.tools.ide.bpel.shared.designer.manager.BPELDesignerManager.launchCreationDialog(BPELDesignerManager.java:48)
    at oracle.tip.tools.ide.bpel.shared.plugins.soa.sca.BPELComponent.createImplementation(BPELComponent.java:46)
    at oracle.tip.tools.ide.fabric.gui.controller.ActionComponentEdit.add(ActionComponentEdit.java:118)
    at oracle.tip.tools.ide.fabric.gui.controller.ActionComponentEdit.process(ActionComponentEdit.java:95)
    at oracle.tip.tools.ide.fabric.gui.controller.DiagramController.processActionRequest(DiagramController.java:358)
    at oracle.tip.tools.ide.fabric.gui.controls.DiagramSOAPopupHandler.actionPerformed(DiagramSOAPopupHandler.java:117)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    at java.awt.Component.processMouseEvent(Component.java:6516)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:708)
    at java.awt.EventQueue$4.run(EventQueue.java:706)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
    at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Thanks in advance.
    Cheers,
    bala

    Please paste composite.xml and bpel source file here. Looks like one of the endpoints is getting goofed up.

  • Invoking Siebel CRM OnDemand Web Service via BPEL

    I'm trying to invoke a Siebel CRM OnDemand Web Service via BPEL. Basically, the Siebel guide says to post to a url with user/pwd to get a session ID returned from a cookie. I did that using embedded java and have the session ID as a variable in my BPEL process. My problem is with now calling the Web Service to perform the action. I have a WSDL from Siebel, but the guide says to use an HTTP post with the session ID in the url and the XML in the body. How do I do that? Shouldn't the WSDL handle that when I create the Partner Link? Do I need to use more embedded Java for this or can I set up a Partner Link? I created a Partner Link and it shows the methods I want to use, but I get the following error when I try to call it because I don't know where to add the session ID:
    <ErrorCode xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">SBL-ODU-01006</ErrorCode>
    <ErrorMessage xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">Internal Error: Session is not available. Aborting.</ErrorMessage>
    Any help would be GREATLY appreciated. Please let me know if you need more information.
    THANKS!

    The Siebel OnDemand web services can accept the siebel session token in the URL. Append ';jessionid={%sessionIdFromCookie%}' to the end point. Obviously this has to be done dynamically. Refer to the article called 'Making BPEL Processes Dynamic' (http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html) pay particular attention to the 'Eliminating address dependency at run time' section.
    Peter

  • Unable to create a service in SDCCN

    hi all ,
      i want to create a service in my Quality service in TC : SDCCN .
    but when i click on on the NEW button , i get a status message as 'no action is possible '
    but i was able to do it on Development and production system .
    Do we need to change any settings ?

    Hi,
    Do find the Snote 763561 where i found answer for your problem which depicts as shown below:-
    When trying to create a task in SDCCN an error message
    appears: ' No action possible '. Why can the task not be
    created?
    Answer :  SDCCN has not yet been initialised correctly, and
    so the customizing for the tasks has not been filled yet.
    SDCCN can be initialised locally by following these steps:
    Ensure that the task processor job is deactivated, via
    SDCCN -> Goto -> Settings -> Task processor
    Then initialise the tool via SDCCN ->Utilities -> Activate.
    If the initialisation was succesful you should get the following
    messages:
    Local initialisation of new Service Data Control Center
    Activation successful
    Destination to SAP created
    AUTO_SESSION_MANAGER descheduled Settings filled
    Service Data Control Manager tasks created Task processor
    scheduled
    Jobname                        /BDL/TASK_PROCESSOR
    Rgds
    Radhakrishna  D S

  • Proxy restful services via osb

    Hi,
    I would like to proxy my rest services via OSB for monitoring purpose. I did configure a simple GET call to use OSB proxy, I did it by creating a business service and point the URI to use the absolute URL of the rest Services (i.e. http://localhost:port/myRestMethod) and then created a proxy service pointing to my business service. Is this the correct way of doing it? Also I have the following questions:
    1. is there a way to make the URI for the rest service dynamic?
    2. How should I configure a post?
    I would appreciate any kind of help or if you can point me to some kind of documentation or example. I am very new to OSB and don't have much knowledge about it.
    Thanks
    Regards
    M.

    You can set the headers of the request quit similar to the ones you use for the get and delete parts. If you want to POST or PUT JSON/Xml/Text to your rest service you have to fill the $body variable with the contents of the request you want to send. When you use a proxy service I would suggest adding a route to block at the end of the PS. The route block contains a route to the business service you want to call.
    When you send the $body in the request pipeline to the business service the $body variable gets updated when the business services receives a response.
    What I usually do is add reporting blocks to your request and response pipelines that contain the $body and $header vars. That way it's easy to see what requests you are sending and what kind of responses you are retrieving.
    Good luck!

Maybe you are looking for