Sharing the Struts model layer as web service ?

Hi
I am currently trying to work out how to best share the model layer on a Struts application, so that this layer is also accessible from ie. a Swing based application.
I was thinking about using Web services in JDeveloper to do this, but it seemes that I need to deploy the web service as a seperate "application" and thus duplicate the whole model layer (because it is no longer accessible for the web service), one for the Struts application and one for the web service.
My Struts app is based on the DAO framework, there is no EJB layer.
Does anyone have any tips, links or any information on how to "publish" some of the bussiness layer of a Struts application for usage on external clients using other technologies like SWING?
Are there other methods to do this using JDeveloper?
I'd rather not have both the Struts and the Swing to call an external webservice, just to expose some of the funtionality from Struts to other clients.
Regards

Hi ADF seemes to be a framework for creating common "front ends" that both web and swing can use.
- If I understood it correctly that is.
This is really not what I am looking for, the SWING based applications use their own frameworks (they are in production), the same is also true for the other web sollutions that one likes to talk to our sollution.
We need to expose the bussiness logic part of our system, not have a common "front end" for the various applications.
Z

Similar Messages

  • Problems with creating model in Email Web Service tutorial

    Hello!
    In the moment, I'm trying to follow the tutorial "Using an Email Web Service in Web Dynpro". I followed all the steps in the chapter "Generating a Model from the WSDL Description", but after typing in the mentioned WSDL description "http://webservices.matlus.com/scripts/emailwebservice.dll/wsdl/IemailService" in the "New Model" wizard, I'm getting the error message, that the WSDL file is not found or not valid and no new model can be created.
    So I'm quite stuck. What am I doing wrong? Did anyone encounter the same problems?
    Greeting
    Bärbel

    Hello Baerbel,
    I could not reproduce this error and never had this before. What you could do in the meantime is taking the wsdl description from the url and copy and paste it into a notepade file. Then please save it under emailwebservice.xml onto your hard disc and select it from "local file system or url" and take it from the path of your local file system.
    Hope that helps!
    Best regards,
    Karin

  • How to disable href/id in the generated response of a web-service

    Hello All,
    Do I have any possibility to disbale href/id on the generated response of a web-service that use RPC-encoded format? My generated soap body looks like this:
    <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <m:Response xmlns:m="http://www.myTest.com">
    <result xmlns:n1="java:com.myTest" xsi:type="n1:Response">
    <ResultObject xsi:type="n1:ResultObject">
    <firstString href="#ID_6" />
    <integerObject href="#ID_13" />
    <secondString href="#ID_6" />
    </ResultObject>
    <ResultObject xsi:type="n1:ResultObject">
    <firstString href="#ID_6" />
    <integerObject href="#ID_13" />
    <secondString href="#ID_6" />
    </ResultObject>
    <ResultObject xsi:type="n1:ResultObject">
    <firstString href="#ID_6" />
    <integerObject href="#ID_13" />
    <secondString href="#ID_6" />
    </ResultObject>
    </result>
    </m:Response>
    <xsd:int xsi:type="xsd:int" id="ID_13">10</xsd:int>
    <xsd:string xsi:type="xsd:string" id="ID_6">EUR</xsd:string>
    </env:Body>
    Do I have any possibility to instruct the serialization process so that the result to conform with an XML schema and to keep the RPC-Encoded format? In other words to get rid of href/id:s? Href/id:s are used only for objects having the same reference.
    This issue is now even more problematic since JDK 5 when for integers boxing is not necessarily and thus, the compiler translates an Integer assignment using the method:
    public static Integer valueOf(int i)
    which returns cached Integer objects for any integer between -128 and 127.
    Please give some hints (others than using boxing for integers or changing the soap format to document-literal).
    Thanks

    Hello All,
    Do I have any possibility to disbale href/id on the generated response of a web-service that use RPC-encoded format? My generated soap body looks like this:
    <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <m:Response xmlns:m="http://www.myTest.com">
    <result xmlns:n1="java:com.myTest" xsi:type="n1:Response">
    <ResultObject xsi:type="n1:ResultObject">
    <firstString href="#ID_6" />
    <integerObject href="#ID_13" />
    <secondString href="#ID_6" />
    </ResultObject>
    <ResultObject xsi:type="n1:ResultObject">
    <firstString href="#ID_6" />
    <integerObject href="#ID_13" />
    <secondString href="#ID_6" />
    </ResultObject>
    <ResultObject xsi:type="n1:ResultObject">
    <firstString href="#ID_6" />
    <integerObject href="#ID_13" />
    <secondString href="#ID_6" />
    </ResultObject>
    </result>
    </m:Response>
    <xsd:int xsi:type="xsd:int" id="ID_13">10</xsd:int>
    <xsd:string xsi:type="xsd:string" id="ID_6">EUR</xsd:string>
    </env:Body>
    Do I have any possibility to instruct the serialization process so that the result to conform with an XML schema and to keep the RPC-Encoded format? In other words to get rid of href/id:s? Href/id:s are used only for objects having the same reference.
    This issue is now even more problematic since JDK 5 when for integers boxing is not necessarily and thus, the compiler translates an Integer assignment using the method:
    public static Integer valueOf(int i)
    which returns cached Integer objects for any integer between -128 and 127.
    Please give some hints (others than using boxing for integers or changing the soap format to document-literal).
    Thanks

  • What is the best practice for developing web service?

    Hi All,
    I'm a newbee to web services...
    I was wondering what would be the best approach in developing a web service,
    using tools or programmatic approach?
    If I use WebLogic Workshop, am I tied to a vendor?
    Is it possible for me to develop web services using workshop and deploy in
    another app server..?
    I would appreciate if somebody could give me a pointer to start.
    I have already referred BEA's docs.
    I'm still confused on a good starting point on the best approach to develop
    protable web services.
    Thanks in advance for any inputs.
    K K

    K K-
    You have a very valid point on the simplify or complicate matters. If you are
    going for clean and not-so-time-centric code, then there are several different
    programs and packages out there you can choose from.
    Since you are specialized in J2EE, than the Sun package may be what you are looking
    for. BEA's classes simplify much of the work you will be doing, but you could
    emulate their classes or extend yours above the functions provided in theirs.
    It all boils down to how much work are you willing to do.
    If you are asking for more detailed, coding 'Design Patterns' to utilize, I would
    wait for a few more posts from other folks as my work often requires me to utilize
    the tools provided.
    Sincerely,
    Eric Ballou
    "K K" <[email protected]> wrote:
    Eric,
    Thanks for the response.
    I was also looking at Sun's WSDP 1.1, which is more programmatic approach.
    Some how, I feel being a J2EE developer, I should go on the direction
    of the
    programmatic approach.
    Using the tools could simplify or complicate things. Also, the Workshop
    samples import all weblogic specific packages.
    My code looks so dirty with many vendor specific packages being imported.
    Could you give me your suggestions for a clean and neat approach?
    I would personally prefer to avoid the quick and dirty approach.
    Thanks again.
    "Eric Ballou" <[email protected]> wrote in message
    news:[email protected]...
    K K-
    The best approach in developing portable web services is knowing whatyou
    are
    planning on using them for as well as how much is willing to be spent,etc.
    BEA's Workshop is portable to other frameworks, but the ease ofintegrating a
    developed client or a developed server can very greatly. Even moreof an
    issue
    is migration from one framework to another. If you choose to developin
    Workshop
    and your company later deploys .Net solutions, some of your work mayhave
    to be
    redone unless the company is willing to keep portions of the 'old'system
    around
    until new versions of the service are available. However, Workshophas
    several
    ant tools available that would assist you in deploying to other appservers or
    even a stand-alone application should you need cross framework abilities.
    If you are just starting out in web services, http://www.webservices.org
    is a
    good place to start checking out vendors in the space.
    Sincerely,
    Eric Ballou
    "K K" <[email protected]> wrote:
    Hi All,
    I'm a newbee to web services...
    I was wondering what would be the best approach in developing a web
    service,
    using tools or programmatic approach?
    If I use WebLogic Workshop, am I tied to a vendor?
    Is it possible for me to develop web services using workshop and deploy
    in
    another app server..?
    I would appreciate if somebody could give me a pointer to start.
    I have already referred BEA's docs.
    I'm still confused on a good starting point on the best approach todevelop
    protable web services.
    Thanks in advance for any inputs.
    K K

  • ERROR: MyService.jws:715:There are two or more operations with the same schema-element 'ns0:MyNameSpace' on the input message in a web service file or callback interface.

    I have two web service operations that have the same complex type as their input
    parameter. I want to map this type to an existing schema. I can successfully
    do this with the first operation using XQuery but when I attempt to do this with
    the second operation I get the following error:
    ERROR: MyService.jws:715:There are two or more operations with the same schema-element
    'ns0:MyNamespace' on the input message in a web service file or callback interface.
    ERROR:      SUGGESTION: Use different schema-element values for each of those operations.
    How can I use different schema-element values? The input parameters are to be
    mapped to the same schema and same element since they are the same for both operations....

    I am having the same problem. How did you resolve this..?? could you please tell me the solution??
    Thanks
    Shari

  • Using the UWL API inside a Web Service

    I wrote a Web Service to get the number of new tasks and the total number of tasks for a user like it is displayed in the UWL in the DefaultView.
    The numbers are retrieved by the following code:
    user = com.sap.security.api.UMFactory.getAuthenticator().getLoggedInUser();
    // JNDI lookup for getting the service because we are not in the PRT container
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sapportals.portal.prt.registry.PortalRegistryFactory");
    InitialContext initialContext = new InitialContext(env);
    uwlService = (IUWLService) initialContext.lookup("/broker/services/" + IUWLService.ALIAS_KEY);
    if (uwlService == null) {
         throw new Exception("Cannot get UWL Service");
    context = new UWLContext();
    if (user == null) {
         throw new Exception("No user");
    context.setUser(user);
    context.setLocale(user.getLocale());
    session = uwlService.beginSession(context, 200);
    context.setSession(session);
    context.setAllowBackEndConnections(true);
    itemManager = uwlService.getItemManager(context);
    UWLView view = uwlService.getViewManager(context).getView("DefaultView", context);
    if (view != null) {
         QueryProperties properties = new QueryProperties();
         properties.setMaxNumberOfItemsToFetch(0);
         QueryResult result = itemManager.getItemsForView(context, view, properties, null);
         totals = itemManager.getTotalAndEmphasizedItemCountForView(context, view, "", null);
    In the first step I chose basic authentication. When debugging I see that the web service gets the information about the logged on user. The UWLService, item manager, session and view, all of them are determined resp. created.
    But when calling getItems the UWL exception "Logged in users context or session doesn't exist" is thrown.
    When calling the same functionality from Web Dynpro everything works fine.
    Service and session are determined like this
    uwlService = (IUWLService) WDPortalUtils.getServiceReference(IUWLService.ALIAS_KEY);
    context = new UWLContext();
    IUser user = WDClientUser.getLoggedInClientUser().getSAPUser();
    wdContext.currentUIStateElement().setUserName(user.getFirstName() + " " + user.getLastName());
    context.setUser(user);
    context.setLocale(WDResourceHandler.getCurrentSessionLocale());
    session = uwlService.getUwlSessionForWebDynproClient(context);
    Does anyone know how to work with the UWL API in a web service context?
    Thanks in advance
    Antje

    Hi Experts,
    We are also facing the same issue as of Yomesh.
    The strange part here is that, yesterday, the code was fetching the User and we were able to run the whole web service.
    Suddenly, this doesnt seems to be working today. And after debugging, we found that, the User is not being returned with the below code:
    user = UMFactory.getAuthenticator().getLoggedInUser(wsContext.getHttpServletRequest(), null);
    Any help is highly appreciated.
    Thanks in Advance!!
    BR,
    Uday

  • Sort order in the Busines Model layer

    HI,
    When you specify a sort order in the Busines Model layer, it is ignored on Pivot Tables. Can we please get Pivot Tables to use the sort order specified in the BM layer?
    Thanks and Regards

    -- Can we please get Pivot Tables to use the sort order specified in the BM layer?
    If it doesn't work, please try to
    1) add the column in pivot table on which the sorting is based.
    2) hide it and
    3) place it at the beginning in the rows section.

  • We are using the Azure server for our web services. Server is generating an error "Unable to connect to the remote server". What is this error means

    We are using the Azure server for our web services. Server is generating an error "Unable to connect to the remote server". What is this error means  

    Hello,
    Did you means that you use the Windows Azure Virtual Machine DNS name as the server name in the Reporting Server Web Services URL?
    For example:
    Report server:http://uebi.cloudapp.net/reportserver
    Report manager:http://uebi.cloudapp.net/reports
    If you want to connect to Report Manager on the virtual machine from a remote computer, you should create a  virtual machine TCP Endpoint and open the port in the virtual machine’s firewall. By default, the report server listens for HTTP requests
    on port 80.
    Reference:http://msdn.microsoft.com/en-us/library/jj992719.aspx#bkmk_ssrs_connect_2_remote_RM
    Regards,
    Fanny Liu
    Fanny Liu
    TechNet Community Support

  • What are the steps to Migrate a Web Service from Tomcat to JBoss

    Hi,
    I am totally new to JBoss and need some help. I mostly worked on BEA and Oracle. I have a web service deployed on Tomcat that needs to be now migrated to JBoss. What are the steps in moving a web service from Tomcat to JBoss.
    Is there some step by step tutorial on developing and deploying a web service on JBoss along with sample build script.
    Any help is really appreciated.
    Thanks

    R u using axis. If you want to stick with axis and don't want to use JBossWS there is nothing else you need to do. Move all the axis to Jboss. If you plan to reimplement all ur services in JBossWS here it is:
    http://jbws.dyndns.org/mediawiki/index.php?title=Quick_Start
    http://jbws.dyndns.org/mediawiki/index.php?title=User_Guide
    Let me know if you need anything else.

  • Problems using the Java API inside a Web Service

    Hi,
    after I've built a standalone Java RMI client, using the API, I wanted to use the same code in a Web Service I've built and deployed in tomcat (jwsdp-1.3). But i ran into a few problems..
    - although I have the exact same code in both programs, the one in the web service simply blocks when I initiate the Locator class (see above...);
    - all the .jar's that I use in the client are deployed in the WEB-IF/lib of the web service directory on tomcat;
    - no exceptions are thrown in tomcat, so i don't know what's going on;
    Is there any specific configuration for the API to run on tomcat?
    Could it be that the .jar's needed by the Locator class may have some kind of conflict with the ones in tomcat?
    Thanks...
    Note: The code on the client is totaly stable and fully operational.
    The web service uses java.rmi.Remote (extends Remote).
    Here's part of the code:
    Properties env = new Properties();
    env.setProperty("orabpel.platform", "oc4j_10g");
    env.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
    env.setProperty("java.naming.provider.url","ormi://dellpc05/orabpel");
    env.setProperty("java.naming.security.principal","admin");
    env.setProperty("java.naming.security.credentials","welcome");
    Locator locator = new Locator("default", "bpel", env);
    IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
    (...)

    I've put a
    try{Locator...}
    }catch(Throwable t) {
    System.out.println(t.getMessage());
    t.printStackTrace();
    around the Locator..
    I still don't know why it's throwing this...
    Here's what it gets:
    before Locator
    javax/jms/JMSException
    java.lang.NoClassDefFoundError: javax/jms/JMSException
         at com.evermind.server.ThreadState.getCurrentState(ThreadState.java:206)
         at com.evermind.server.rmi.RMIConnection.checkServletCaller(RMIConnection.java:3448)
         at com.evermind.server.rmi.RMIConnection.<init>(RMIConnection.java:181)
         at com.evermind.server.rmi.RMIServer.addNode(RMIServer.java:856)
         at com.evermind.server.rmi.RMIServer.getConnection(RMIServer.java:953)
         at com.evermind.server.rmi.RMIInitialContextFactory.getInitialContext(RMIInitialContextFactory.java:309)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
         at javax.naming.InitialContext.init(InitialContext.java:219)
         at javax.naming.InitialContext.<init>(InitialContext.java:195)
         at com.collaxa.cube.util.CXBeanRegistry.lookupDomainManagerBean(CXBeanRegistry.java:205)
         at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:84)
         at com.oracle.bpel.client.Locator.<init>(Locator.java:120)
         at com.oracle.bpel.client.Locator.<init>(Locator.java:91)
         at dmc.tm.resultprovider.ResultProviderImpl$ResultProviderThread.taskTimeoutExceeded(ResultProviderImpl.java:231)
         at dmc.tm.resultprovider.ResultProviderImpl$ResultProviderThread.run(ResultProviderImpl.java:160)

  • Adding transaction layer to Web service API

    Our company, an ISP, recently invested in the BroadHop Enterprise Service Manager platform. The platform enables us to provision Internet services via the Web. We were able to write, largely from scratch, a "registration process" by which our users subscribe to service, and then sign-in to use their Internet access.
    To create the data representing these new customers, the registration process utilizes several Web service APIs provided by BroadHop. There is one Web service to create the customer's account, another to provision his/her services, and another to facilitate the authentication process.
    What I am interested in is a means of creating a transaction for these Web service calls, with the intention of "rolling back" in the middle of the process. The Web services are consumed thusly:
    1. User enters data into session beans via a JSP-driven, multi-page, collection phase.
    2. The data stored in those beans is disseminated into a special "bean" used to represent the customer's account information. This bean object is then submitted through the Web service API to create the account.
    3. The data stored in the session is further disseminated into a product subscription object, which is then submitted through its own Web service.
    4. Upon success returned by both Web service calls (the absence of an exception), the user is taken to the sign-in page.
    If an error is thrown between steps 2 and 3, our present handler dumps all session data into an XML file and forwards the user to an error page. Although we could eventually automate the process, the data in the XML dump is then manually inserted into the system. Until this is done, however, the data stored in BroadHop is somewhat corrupt, because an account exists but is an orphan (without product subscription information).
    What I am looking for is a generic means of representing the entire transaction as it is to take place, and programmatically "resuming" or "rolling back" the transaction so that orphan data does not hang around in our system.

    My mistake...
    on [http://download.oracle.com/docs/cd/E11081_01/doc/web.21/e14979/toc.htm|http://download.oracle.com/docs/cd/E11081_01/doc/web.21/e14979/toc.htm] , the method
    void      createPropertiesFileOnVirtualMachine(java.util.Properties props, VirtualMachine vm, java.lang.String propFileName)seems to do what I need...
    Now, because my test environment only allow PV Guests, I'd like to know if that also work for HW Guests?

  • Two Web-tiers Sharing the same business layer - oc4j

    I am trying to produce a web application that effectively has two parts. The initial part is an administration system that is used for data entry, it is used within the intranet and must be hidden behind the firewall. The second part is a data search system that is accessible via the internet (i.e opened up through the firewall). Both these web apps should share the same data (one for add/edit of data and one for searching of data) My question is, how can two web applications share the same jar file (business layer - session and entity beans). Is it possible to setup the oc4j appserver to get the applications to us the same jar file?
    Also any ideas how I can hide one of the web applications from the public access, if I open up the port number on the firewall that the oc4j http server uses surely all of my web-apps will be visible via the internet.
    Not sure if this is the right forum for this kind of question as it is more of a design issue but any help would be most appreciated.

    Eddie/403640, you have probably solved your problem of sharing the same jar files. How did your solve it? As I see it, there is no problem at all.
    One way, the ordinary way, is to create an application with ejb modules and web modules. Your business layer are the ejb modules. Your web applications are the web modules. By default, all classes in a jar that is specified to be an ejb module in the application.xml of your application are visible to all your ejb modules and web modules; so are the libraries referenced by the Class-Path attribute in the META-INF/MANIFEST.MF of that ejb jar. If you have connector modules, all jars in the root directory of your .rar file will be available to all modules.
    In a word, the business layer is automatically shared by the web tiers in a j2ee application.

  • Calling an R model via a web service - "Error in raw connection", "all connections are in use"

    Hi there,
    I have built an R model in Azure ML using the "Create R model" module and have trained it, turned it into a scoring experiment and a web service. I am now sending new data to it to be scored from an Excel workbook, and getting it to return
    the prediction to the same workbook. Sometimes (but not always) when I try to run it from the workbook I get the following error:
    {"error:{"code":"LibraryExecutionError","message":"Module execution encountered an internal library error.","details":[{"code":"FailedToEvaluateRScript","target":"Score Model (RPackage)","message":"The following error occurred during the evaluation of R script: R_tryEval: return error: Error in rawConnection (raw(0),\"wb\"):all connections are in use \n"}]}}
    Usually, if you just press "OK", it works, but then sometimes it comes up again (seems quite random). I have tried a bit of troubleshooting and know that when you open lots of connections (e.g. with connections()) in R this error can occur, but
    I'm not sure why in this context the error is coming up. Also, before this error I was getting the error regarding "cannot change value of locked binding for 'dataset'" described here:
    https://social.msdn.microsoft.com/Forums/azure/en-US/e20b8cbf-2e89-4898-b602-d2138bf8901c/cannot-change-value-of-locked-binding-for-dataset?forum=MachineLearning
    and so I made the suggested fix, adding
    unlockBinding("dataset", environment())
    to my Create R Model's Score script. I don't know whether this has anything to do with it or not?
    Could anyone offer advice of how to get round this?
    Many thanks.

    Hi,
    I've solved the problem. For the record I added:
    closeAllConnections()
    at the end of the R scoring script (and at the end of another R-script I was using higher up the pipeline) and that seemed to do the trick.
    Still, I'm intrigued as to why this was necessary.

  • Getting the Request Object in the EJB published as a Web Service

    Hi experts,
    I have a Portal Service that call a BAPI in a back-end system with the Connector Framework. I have a Portal Component that calls the Portal Service, passing the Locale (request.getLocale()) and the User (request.getUser()) object. It's work fine!
    I need to call the Portal Service by an EJB that is published as a Web Service. The connection between the EJB and Portal Service is ok, but I don't know how to get the Locale and the User object in the EJB to pass to the Portal Service.
    Is possible to get the request object from the HTTP SOAP Request?
    Thanks,
    Gustavo

    Hey Alice!
    The Feature Hashing module is actually a wrapper around
    Vowpal Wabbit's implementation of the murmurhash. Thus, it takes text in, and produces 2^N new features based on the text, where N is the bitsize specified in the module. These features (and not the original text!) should be used during model training.
    The Learner will then keep track of these features behind the scenes.
    When you publish your web service and these features are recomputed for new input text (same N), they are used as the features for scoring.
    Does that make sense?
    Regards,
    AK

  • Help to create a component model using Calculator Web Service :(

    Hello All,
    Im working on EP6 SP9 and have a Calculator Web Service.
    I want to create a component which should contain following UI elements:
    1. <i>InputField</i> - to enter 1st number
    2. <i>InputField</i> - to enter 2nd number.
    3. <i>TextView</i> - To show the result
    The calculator web service consists of 4 basic methods like addition, subtraction, division & multiplication.
    I want to know whether how can I provide seperate buttons to each of the above mentioned functions 'coz when I add the web service while creating a component using SAP Web Dynpro (<i>using SAP NEtweaver Developer Studio 2.0.9</i>) - Model Creation step, I get an option to select only one method (and that is add).
    Its not working......
    I am following the steps as mentioned in help pages on Web Dynpro, section "Web Dynpro & Web Services" and example on WebServiceEmail.
    Please help.......
    I have to show this in a presentation on coming Friday.
    Awaiting Reply.
    Thanks and Warm Regards,
    Ritu R Hunjan
    <i></i>

    Please re-post if this is still an issue or purchase a case and have a dedicated support engineer work with you directly:
    http://store.businessobjects.com/store/bobjamer/DisplayProductByTypePage&parentCategoryID=&categoryID=11522300?resid=-Z5tUwoHAiwAAA8@NLgAAAAS&rests=1254701640551

Maybe you are looking for