Slashdot Mirror


Web Servers To Handle Java Servlets And WAP?

Yousef asks: "We're trying to develop a WAP enabled Webserver, that can work with Java (Servlets). Currently the only working option is M$ IIS running the New Atlanta plugin. Now I'd rather NOT run IIS, so if anyone else has a solution to this, it would be much appreciated. We've tried Inprise IAS and Apache JServ (We're deploying to a Sun Solaris box). Any help would be nice. Getting the servlets to run is quite easy -- The problem is getting them to work with WAP!"

"WAP creates its own session ids, and that stops other serverside objects from sharing the same objects.

In short, we have an existing Servlet based system. Now we are trying to incorporate WAP into it (WML). It seems to us as though WML passes cookies around differently to HTML: HTML stores them with the browser, and WML stores them on the server. We've tried just about every server under the sun, and they all behave in the same way."

42 of 111 comments (clear)

  1. Roxen by Anonymous Coward · · Score: 3

    Try the new version of Roxen. Support for PHP4, Servlets, WAP, Pike scripts etc. etc. http://www.roxen.com

  2. Re:WML can work anywhere.. by Thomas+Charron · · Score: 2

    See above responses.. It's all about cookies..

    --
    -- I'm the root of all that's evil, but you can call me cookie..
  3. Re:WML can work anywhere.. by Thomas+Charron · · Score: 2

    Ahh, I had never even thought about using cookies on WAP devices. Personally, I've always based the session information on data contained within the form, aka, URL based, along with form attributes.

    Now it starts to make sense..

    --
    -- I'm the root of all that's evil, but you can call me cookie..
  4. WML can work anywhere.. by Thomas+Charron · · Score: 4

    I'm confused. Nearly anything that can serve HTML can serve up WML, provided the content type is configured correctly, and it spits out valid WML. Why would one need a specific API set to spit out WML code?

    --
    -- I'm the root of all that's evil, but you can call me cookie..
  5. Re:Enhydra by peterjm · · Score: 2

    The cool thing about Engydra (that I'm suprised the original poster didn't mention) is that the development is entirely opensourced. It's sponsored by lutris. They make their money off support contracts for this thing. I've seen some demos of the product, mostly just using cell phone emulators (that I think they ship with enhydra, or they will very shortly), one java, and two win32's, so you can test all your wap apps before fully deploying them. There's also a sample app or two in there. go check them out .

    -Peter

  6. Use URL-rewriting based session management by grungeKid · · Score: 3

    We use Apache together with Resin to create cookie-less session management. Almost all servlet/JSP engines have support for creating sessions this way; the critical thing to remember is to *not* just write links the normal way, but to use the response.encodeURL method to make sure the servlet engine appends the ";jsessionid=" string to the URL in all links.

    1. Re:Use URL-rewriting based session management by Raul+Acevedo · · Score: 2
      The main problem with this is that then ALL your pages have to be JSPs, because any static HTML will not have the right sessionId parameter. If the user goes to any static page, then follows links back to a JSP page, the session will be lost.

      Anyone know any way around this?
      ----------

      --
      In a real emergency, we would have all fled in terror, and you would not have been notified.
    2. Re:Use URL-rewriting based session management by Raul+Acevedo · · Score: 2

      Ah, good idea. You're right about WAP devices, though, I also have no idea if they support client side scripting. I doubt they support JavaScript. In that case, it may be better to go with a server side solution, like the one mentioned above in reply to my question.
      ----------

      --
      In a real emergency, we would have all fled in terror, and you would not have been notified.
    3. Re:Use URL-rewriting based session management by Skapare · · Score: 2

      Scaling is a function of the workload, not of the CPU. If the CPU speed is half or twice, scaling is still proportionally the same. In other words, if you need twice the CPU to get the job done because the code performs at half the speed, then that's going to be the case at any workload level. What a higher CPU usage of something like HTML parsing will do is just make your tolerance threashold be reached sooner. Funny how it is people will switch and say CPU is not the issue if I bring up how their favorite tool is a CPU hog.

      So.... get the best of both worlds. What you need is pre-parsed HTML templates that generate your servlets. Parse the HTML once, and the servlet code then "identifies" the session key insertion points by means of its (now) built-in code. Then compile the servlets down to binary once debugged.

      --
      now we need to go OSS in diesel cars
  7. "Wap-Enabling a Website with PHP3" by Jacco+de+Leeuw · · Score: 3
    These guys have Wapped their geographic search engine, so that you can ask your phone to lookup the nearest pub or curry joint :-)

    Besides, check out the rest of their website. All around cool guys...

    --
    -------
    Warning: Slashdot may contain traces of nuts.
  8. IBM WebSphere Transcoding Publisher by Zombie · · Score: 3
    Check it out. It can translate existing HTML pages to WML on the fly, either within your servlet framework or as a proxy in front of (and therefore totally independent of) your webserver. It will scale down GIFs or take them out, take out stuff that isn't supported by the target device such as javascript, applets etc.

    Wapsody is a Java WAP development environment. Might find that worth looking at too.

  9. Other Options... by jsight · · Score: 2
    I've used several servlet engines in the past, and here's what I've found to be useful:
    • New Atlanta ServletExec 3.0 - I've seen this one used succesfully before, and it was even used for a while with Javalobby.org as a plugin for Apache. It should be platform independant, but it is dependant upon you using a supported webserver (Apache, iPlanet, IIS, etc).
    • Orion Server - This is a 100% Java Webserver with built-in support for XML/XSLT/WAP/etc. It also fully supports servlets (of course) as well as JSPs and EJBs. This is the product currently used by Javalobby. Overall, I think that it's a great solution. The performance of this solution is excellent.

    Anyway, I'm sure that there are plenty of other options, but I've used both of those and found them to be of good quality and performance (Orion being the fastest).

    ------ Jess
  10. XML + XSLT = WAP by marvinx · · Score: 5
    Have you considered developing your web site around XML? There are two very good products out there (both open source) that enable the XML+XSLT=XHTML/WAP/PDF/whatever paradigm.

    I don't know the particulars of your application, but by decoupling the content from the presentation, you gain an enormous amount of flexibility and power.

    By creating content as XML, you can now create XSLT scripts to transform that pure content into an arbitrary presentation form. So you can write an XSLT script that transforms your XML content into XHTML or into WAP. This is powerful because now you can serve multiple different requestors with the same content.

    There is a project called Cocoon (from the Apache Software Foundation) that does this exact thing. Cocoon itself is a servlet, so it gives you a choice of what servlet engine to run it on. It provides good caching, XSLT transformations, and even a "sitemap", which is a central location for binding look&feels to content.

    There is an open source servlet engine that has built in XSLT processing, XPath processing, and XML parsing. It is extremely fast and has a lot of features. It is Resin. I recommend this one. Because this is a full blown servlet engine, you have JSP processing, session support, and it is even a small web server.

    1. Re:XML + XSLT = WAP by dingbat_hp · · Score: 2

      By creating content as XML, you can now create XSLT scripts to transform [...] XML content into XHTML or into WAP.

      Dream on 8-(

      Like everyone and their dog (well, everyone who's dog is an XML/XSL geek), I too thought this was the way to go. Bitter experience shows that although it's technically possible, the sheer broken-ness of WML makes it almost useless. There are two big problems you need to work around; neither of which is conducive to an easy solution in XSL alone.

      • The WML deck size limit. WML is pared down to fit onto phones, where 'phones' are devices so small that they're barely comparable to PDAs. WML simply doesn't have the 'grunt' to deliver useful content volumes to something even as small as a Palm.
      • The clunkiness of WML navigation. You can't make a usable WML nav interface by simply taking the graphics off the same old menubar that works your desktop web pages. The transformation needs to be at a much deeper level, one that's beyond simple mechanical XSL.

      What this means in practice is that your presentation-free XML content needs to be heavily marked up with "WML deck - Cut here" markers, so that when you slice it into decks, then you break it across somewhat functional boundaries. Break it in the middle of (e.g.) a news story and the phone has to go and deal with both decks, just as the user scrolls to read it. More traffic, more delay as the phone leaps around from deck to deck, generally a pretty nasty way of mis-using WAP.

      For interface building, I managed to make it work with XSL transforms of my common XML. It still sucked - what I'd built turned out to be a standard interface hard-coded in XSL, with a bit of templating based on the content of the XML. For the one example I was looking at (a newsfeed service, to re-invent the cliche), this worked OK, but my XSL was entirely dependent on the purpose of this content. There's no way I could even have re-used it for a weather forecast or traffic service, without entirely re-coding the XSL.

      The more I see of WAP, the less I like it. I now see the point of 4K Associates and their "WAP considered harmful" piece of last year. XHTML-Basic is a much better thought out protocol, and it doesn't have this problem of being squeezed so thin that it's no longer big enough to support palmtops.

      I'm not convinced of the commercial future of WAP. Wireless wil be mega-, mega-huge, but I don't think it's going to be built out of WAP. You still have sourcing difficulties for handsets (in the UK) and if the handsets aren't out there, then there's not the same drive to build content. Any new tech in this market only gets one short slot at the championship, and I think WAP might miss it in favour of the Next New Thing.

      Roll on Bluetooth.

  11. Re:XSL Considered Harmful by Raul+Acevedo · · Score: 2
    Another important point regarding XSL is that XSL doesn't preclude you from using CSS. Most of the XSL I've done results in HTML with CSS in it. The above referenced article also forgets that, right now, CSS and DOM implementations are horrible, so for the next few *years*, it will not be possible to rely strictly on CSS and DOM on the client. Clients need to see more pure HTML, with very few advanced CSS/DOM features, because they simply don't work uniformly. So, it is better to put more formatting into the initial XML transformation layer. For now.

    In either case, as the poster above said, the real point of XSL is that you don't have to be a full fledged programmer to use it. While XSL can definitely be painful, I think it is better than writing a computer program in {Perl,Java,Python,*} to do the same thing. Unfortunately, it's not easy enough for just anyone to pick up, so it doesn't completely allow for designers or HTML coders to assume all control of layout without an engineer showing them the ropes, unless of course they are particularly bright and can pick it up.
    ----------

    --
    In a real emergency, we would have all fled in terror, and you would not have been notified.
  12. Re:Enhydra: beware XMLC by Raul+Acevedo · · Score: 2
    While XMLC is a great idea, it is a performance hog, because you are generating a whole DOM tree, manipulating it, then displaying it, at run time. I don't know if Enhydra has introduced caching mechanisms, like the ones Apache's Cocoon is using, to alleviate this; right before I went off to another project, I was about to build this in.

    A better approach is to statically do the base XML to HTML conversion, with JSP (or PHP, mod_perl, whatever) to introduce the final dynamic content. (I.e. convert the XML to a JSP with scriptlet tags for the true run time dynamic content.) Caching algorithms would alleviate this, but I don't see the advantage of doing it runtime, when it works just as well doing it statically. Even with caching, your performance will clearly be better.
    ----------

    --
    In a real emergency, we would have all fled in terror, and you would not have been notified.
  13. Re:Enhydra: beware XMLC by Raul+Acevedo · · Score: 2
    How do you generate the DOM tree beforehand? XMLC generates the Java class for the DOM tree at compile time, but it's still instantiated at run time, and it's a pretty heavy weight object. Also, the DOM manipulations at run time are much more expensive than simply outputting different text for the dynamic HTML.

    I think something like XML/XSL at compile time, followed by JSP/PHP/whatever at runtime, works better, because you have the same content/design separation as XMLC, but not the performance implications.

    BTW, even though you're speaking of WML in particular, I'm speaking of content serving in general.
    ----------

    --
    In a real emergency, we would have all fled in terror, and you would not have been notified.
  14. Re:Enhydra: beware XMLC by Raul+Acevedo · · Score: 2
    I think you missed my point... I wasn't saying that JSP/PHP by themselves were good enough to substitute for XMLC. I'm saying that other XML to HTML solutions, combined with JSP, are better.

    There is a difference between static and dynamic content, vs. how static content is generated. For example, a basic web page that doesn't vary for anyone could be generated on the fly with XMLC/Cocoon, but it's still essentially static content. If the page shows the current time on each access, then it's dynamic, even if it's a simple PHP HTML template.

    So, for basic content generation, I think XML to HTML is a great idea. XMLC is one solution. XSL is another. The problem with XMLC is that it only works at run time, which is a non-trivial performance hit. (Especially when you consider static content, that can no longer be served as a plain HTML file, and has to go through a servlet engine.) With XSL, and perhaps other technologies, the XML to HTML processing can be done at build time, resulting in HTML files that can be served faster.

    The reason I mention JSP or PHP is because then you have to insert dynamic content into the resulting HTML, and at that point, you need JSP/PHP/whatever. But keep in mind that if you apply the content/logic separation with JSP/PHP clean, then making sure that your XML to HTML translation adds the right JSP tags is easy. So, you still maintain your content/logic separation throughout the whole process. And you get an additional performance boost over XMLC because you are simply outputting new strings, as opposed to manipulating a DOM tree, which is harder and slower.

    Bottom line: XMLC combines static content generation with dynamic content generation. Both are slow, because (a) it happens at run time, and (b) DOM manipulation is slow. My suggestion is to move static content generation to build time, and use a simpler technology, like JSP, that gives you the same content/logic separation, to do the dynamic stuff. This still involves using XML to keep the distinction between logic and presentation nice and clean.
    ----------

    --
    In a real emergency, we would have all fled in terror, and you would not have been notified.
  15. Solution for others: PHP and WAP gateway. by Delta · · Score: 2

    While this isn't a possible solution for the original poster, because he's tied to servlets, it might be a possible solution for others.

    PHP allows for effective session management, and with a bit of work, I'm sure you could make it compatible with the WAP cookie things. It might even be possible to do so without having to mod the base system.

    There are also several good looking WAP/HTML gateways either in early production or late development, and I'm sure those will be interesting.

    Note that I have not looked much at either the gateways, or the possability of server side cookies in PHP. I'm just throwing the idea around incase it might help anyone.

    --
    Terje Elde
  16. Enhydra by chadfowler · · Score: 5

    http://www.enhydra.org Has a servlet engine (built around tomcat) with an Apache/ISS/Netscape based load balancer. Built-in support for WML via an extension to their GPL'd XMLC technology.

    1. Re:Enhydra by General_Corto · · Score: 2

      Enhydra also supports the required server-side sessioning that the questioner needs... Actually, that's a very cool technology if it's robust, but I'm not sure that server-side sessions work well in cases where things like NAT and firewalls are being used... It's tough to track 20 people all coming from the same IP address :)

  17. WAP and sessions by Thorkild · · Score: 2

    Cookies and wap don't go together afaik. You should make the session-id in a hidden value in the wmlfile. You can do this with postfield. You'll have to make sure your sessions time out and some more.

    But it is the way to go.

    Also. You've got to look out for & and $. The need to be encoded no matter what. Or the gateway will go berserk (i.e: not respond)

    --
    -- Thorkild
  18. Re:Enhydra mini-howto + sample app by kikan · · Score: 2

    By the way, here is some more info :
    http://www.wirelessdevnet.com/training/WAP/wapen hydra.html, with a nice mini-howto and a HelloWAP application !

  19. Roxen by ppetru · · Score: 3

    Roxen Web Server (former Roxen Challenger) is a quite good choice (amongst many others it has native servlet/Java modules support and speaks WML natively (also knows to generate WBM)). Plus, it's GPL'd.

    --

    Petru
  20. Source code for session servlet by The+Wookie · · Score: 2

    In case anyone is interested, you can use this servlet to insert the session ID into the URL and filter the ID out of the path, even if you use a WML file. This doesn't seem to work in the Phone.com simulator, though. It works fine in the Nokia. I think it may have something to do with the Phone.com server supporting cookies, but I can't be sure. If anyone gets it to work, let me know. I'll keep playing with it, too.
    -------------------------------------
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    public class FakeSessionServlet extends HttpServlet
    {
    public void service(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException
    {
    response.setHeader("Content-Location", request.getRequestURI());

    String extraInfo = request.getPathInfo();

    // Locate the next slash in the path (assume there is one at position 0)
    int slashPos = extraInfo.indexOf('/', 1);

    if (slashPos > 0)
    {

    // Get the subsession id and the real path to access
    String virtSession = extraInfo.substring(1, slashPos);
    String fullPath = extraInfo.substring(slashPos);

    if (fullPath.indexOf(";jsessionid") < 0)
    {
    fullPath = fullPath + ";jsessionid="+virtSession;
    }

    // Assume the real path is under /appdir
    getServletContext().getRequestDispatcher("/appdir" +fullPath).
    forward(request, response);
    }
    }
    }
    ---------------------------------------------
    Using Resin, you need to add the following items to your resin.conf file:
    ---------------------------------------------
    <servlet-mapping url-pattern='/appsession/*' servlet-name='fake-session-servlet'/>
    <servlet servlet-name='fake-session-servlet' servlet-class='FakeSessionServlet'>
    </servlet>
    <path-mapping url-regexp='^/appdir/' real-path='h:/jprogs/sesstest/'/>

    <mime-mapping>
    <extension>.wml</extension>
    <mime-type>text/vnd.wap.wml</mime-type>
    </mime-mapping>
    ---------------------------------------------

    Now, you send your phone to this main page that redirects you through the FakeSessionServlet to get to the real main menu:
    ---------------------------------------------
    <%
    response.sendRedirect("/appsession/"+
    session.getId()+"/Menu.wml");
    %>
    ---------------------------------------------

    The menu.wml file looks like this:
    ---------------------------------------------
    <?xml version="1.0"?>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
    "http://www.wapforum.org/DTD/wml_1.1.xml">

    <wml>
    <card id="mainmenu">
    <p>
    <a href="Test1.jsp" title="Put Into Session">Put Into Session</a><br/>
    <a href="Test2.jsp" title="Get From Session">Get From Session</a>
    </p>
    </card>
    </wml>
    ---------------------------------------------

    The Test1.jsp file looks like:
    ---------------------------------------------
    <%@ page language="java" contentType="text/vnd.wap.wml" %>

    <?xml version="1.0"?>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
    "http://www.wapforum.org/DTD/wml_1.1.xml">

    <%
    session.setAttribute("foo", "Bar!");
    %>
    <wml>
    <card id="test1">
    <p>
    I put <%= session.getAttribute("foo") %> into the session.
    <a href="Menu.wml" title="Back to Menu">Back To Menu</a>
    <a href="Test2.jsp" title="Get From Session">Get From Session</a>
    </p>
    </card>
    </wml>
    ---------------------------------------------

    Test2.jsp looks like this:
    ---------------------------------------------

    <%@ page language="java" contentType="text/vnd.wap.wml" %>

    <?xml version="1.0"?>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
    "http://www.wapforum.org/DTD/wml_1.1.xml">

    <wml>
    <card id="test2">
    <p>
    I found <%= session.getAttribute("foo") %> in the session.
    <a href="Menu.wml" title="Back To Menu">Back To Menu</a>
    </p>
    </card>
    </wml>
    ---------------------------------------------

  21. Fix to allow phone.com browser to work, too by The+Wookie · · Score: 2

    You just need to explicitly store the session ID in a cookie. After the section:

    if (fullPath.indexOf(";jsessionid") < 0)
    {
    fullPath = fullPath + ";jsessionid="+virtSession;
    }

    Add this line:

    response.addCookie(new Cookie("jsessionid", virtSession));

    Frogg mentioned that he has something that did this and sure enough, that was the trick. Thanks for sharing, Frogg!

  22. Re:Excuse my ignorance, but... by Black0ut · · Score: 4

    WAP and WML are things that allow webpages to be seen over portable conncections like web enabled cell phones and PalmPilots...From what little i have read about it, it takes the HTML and strips thing like img tags and such and parses it into a form portable devices can understand

  23. xml.apache.org by Kingpin · · Score: 5


    You should definitly check out the Cocoon project. XML, XSL/T and whatever you might need.

    --
    Unable to read configuration file '/bigassraid/htdig//conf/14229.conf'
    Geocrawler error message.
  24. WAP enabled servers without IIS by ramas · · Score: 2

    If you can go the PHP way there is the option of going with the hybrid web server HAWHAW - HTML and WML Hybrid Adapter Webserver which delivers content depending on the browser capabilities.. so you no longer have to create separate HTML and WML pages to deliver similar content..

    Check it out .. wonder if it helps the the person who wanted to use Servlets/JSP on a non IIS server but this info might be useful to others,

    Cheers
    -/ramas

    --
    - ramas opines !!
  25. Sounds like your web designers need a compile step by Ungrounded+Lightning · · Score: 2

    To use URL rewriting all of the links of the template need to be interpreted by a servlet. This can be done one of two ways, by using a HTML parser to find all of the links and manipulate them, or by using some kind of tag in your template to specify a link. The first seems way to CPU intensive to scale well, and the second is going to be nasty for the web designers.

    The concern that the first might be "way too CPU intensive to scale well" presupposes that the page will be parsed by the server on-the-fly every time it is serverd.

    Why not precompile it, having the compiler insert the tags?

    Then the web authors can work on normal HTML, directly or using arbitrary tools. But the server can work with the fast, tagged form.

    There are several ways to manage the compilation so the designer's process is either unmodified or requires just an extra click or so to view the page-under-construction as it would be seen externally.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  26. Re:Remember it's a different architecture by haggar · · Score: 2

    Judging from the Wireless Session Protocol Specfication at http://www.wapforum.org/what/technical.h tm it looks like most of the session handling stuff is
    geared to handling the connection between the phone and proxy.

    Well, of course! That is because the air interface (or radio-transmissio part) is located in that segment, and which is the source of interruptions, timeouts, lost packets and delays. The air interface is much less reliable that the Internet in general (we ae talking celular network here, not (yet) 3G), so all those complicated handshakes, receipt and delivery confirmations explained in the WSP (wireless session protocol) specs make tremendous sense. The WAP protocol stack is a little bit like X.25, but at even lower speed.
    However, WAP is also scalable, it's designed to support future air transmission techniques, coming with G3, like GPRS, for example, or some of those non-cellular radio networks you already have in some US cities (Ricochet, for example).

    --
    Sigged!
  27. I don't get it... by haggar · · Score: 3

    What is so difficult about it? I actually have signed a NDA so I am not going to tell details here, but our solutions all use Netscape Enterprise Server, but I have also used Apache on Linux to serve WAP. Actually WML and WMLS. The logic behind generating WML and WMLS is the same old **** that today generates dynamic HTML.

    Really no big deal, just the syntax is different, and the mind has to be set to think little (cell phone display and keypad).

    --
    Sigged!
  28. Re:Excuse my ignorance, but... by kootch · · Score: 2

    WAP is either a White Anglo-Saxon Protestant... or go to Wapforum.org

  29. Re:Excuse my ignorance, but... by kootch · · Score: 2

    hehe, OOPS.

    (my apologies to all of the WASP's I just insulted)

  30. Why the click-through spec license ? by RGRistroph · · Score: 2
    If you try to download the technical documents from www.wapforum.org it asks you to click through a license agreement. While the license agreement doesn't ask you to treat the document as a trade secret, I still find it offensive.

    (As near as I can tell, the license agreement is meaningless; perhaps someone with more legal understanding can explain what they get from this that is not already granted to them by law ?)

    You might also be interested in this slashdot article which talks about patent and licensing related issues in WAP.

    On the whole, there seems to be enough uncertainty associated with the WAP licensing/patent issue that I decided not to use it for what I was working on.

  31. Remember it's a different architecture by aegrumet · · Score: 2
    WAP creates its own session ids, and that stops other serverside objects from sharing the same objects.

    The thing to realize is that in WAP you have a proxy/gateway sitting between the cell phone and web server.

    Judging from the Wireless Session Protocol Specfication at http://www.wapforum.org/what/technical.h tm it looks like most of the session handling stuff is geared to handling the connection between the phone and proxy.

    In a perfect world we'd simply use cookies to track session just like in HTTP, but sadly these don't seem to work reliably yet in WAP. In the meantime, you'll have to resort to either passing session identifiers as form variables or else in the URL.

    For anyone interested, I'm working on an overview article on how to add wireless users to your web service. The draft lives at http://dev.arsdigita.com/asj/wireless/.

  32. Enhydra by Issue9mm · · Score: 3
    This document, an enhydra WAP/WML/HTML tutorial, will briefly illustrate the abilities of the Enhydra server.

    They are currently in the process of upgrading to the servlet 2.2 API, and their FAQ details the finer points of running Enhydra with Apache and Apache JServ.

    All in all, it's a fine solution. It took me just a little bit of research, but once I got it up and running, I found that it was very reliable, and more than ample speed-wise.

    Hope this helps...

  33. WAP != WML by dingbat_hp · · Score: 3

    Nearly anything that can serve HTML can serve up WML

    Serving up WML is easy (as you say). WAP needs some extra stuff doing though, mainly to deal with handling session state in an entirely different way to the traditional HTTP (and thus the cookies are different too).

    Think about it. Phones have fixed IDs (from the telco network), but nowhere big enough to store client-side cookies.

  34. Re:List of your choices: by roman_mir · · Score: 2

    Forgot to mention:
    There are also multiple Servlet Engines available.
    There is New Atlanta Servlet Exec, there is IBM Servlet Engine used in WebSphere, there is a servlet engine from Sun, there is Caucho servlet engine for Apache *nix or JServ, there is a webserver Jasper that currently confirms with Servlet Engine 2.1 specifications, there is Allair JRun, there is 10BaseJ servlet engine, there is an engine called cocoon.

    Basically there are so many more of them now than there were 2 years ago when I started looking at New Atlanta that it's easy to loose your head.

    All you really need is an engine that supports Servlet Engine 2.2 specifications and that is fast reliable and runs well under your OS. Make sure that if you get an engine that it can be pluged in as a filter into your current WebServer, otherwise you'll have to get yourself a whole application server or another WebServer.

  35. List of your choices: by roman_mir · · Score: 3

    You can use the following solutions:
    www.davinci.ca (here is the competitive analysis document I had to write: download)
    www.724.com
    www.microstrategy.com
    www.zope.com
    www.orionserver.com


    The fact is that neither phones nor PDAs currently can not accept cookies. Obviously this is a memory and bandwidth restriction and a good one - imagine you have a phone and every site you visit sets a cookie on it, pretty soon you'd run out of space.

    To keep your user's session you can use either URL Rewriting technique or a server side Session identifier (the later one is harder to implement for unregistered users.) Don't forget that a user can have more than one session at a time on any server with multiple devices.

    Look at 'resin' if you need good authentication and session implementations.

    Good application servers also provide all possible techniques for storing session: Cookies, URL Rewriting and server side sessions, so check out these: www.weblogic.com (www.bea.com), www.gemstone.com, www.orionserver.com, www.zope.com, www.websphere.com
    The product I am working on currently is an XML server that allows easy implementation and separation of business logic from layout module and has a granular cache for storing data results from varios functions for all users, so check out 'Trinity' project from www.davinci.ca

    In general, there are many solutions but none will help you to store the cookies on the mobile device itself.
    Good Luck.

  36. Nokia and BEA agreement by Krakus+Irus · · Score: 2

    Just have a look on this link http://www.bea.com/press/releases/2000/0508_Nokia. html

  37. I have it working by sudhan · · Score: 2

    I hope you want to find out how to setup a webserver to serve WML (Since the WAP part happens after a WAP gateway, pulls the WML content from a WML webserver and sends it over the Internet). I have it working and have tested this against real and emulator phones. I run Apache with JServ. In simplest of requirements, all it requires is setting up the mimetypes (atleast for vnd.wap.wml and possibly 4/5 more). Then in your servlet you will setContentType("whatever you want to server"). Note that it is also possible to setup the webserver to intelligently serve pages depending on the end-agent (browser?!) and serve either wml or html etc... in Apache.