Oracle returns redicrect when there is NAT between client and server

I have Oracle 8i on Linux sitting behind a firewall/NAT. I have two Apache webservers that run both Tomcat and WebLogic webapps, also behind the NAT. One of them is on the same machine as the Oracle server. Those all connect just fine. I recently had to load a JBoss/Tomcat webapp (no Apache) outside the NAT which needs to talk to the Oracle server. It's using a JDBC driver, I believe calling on this class: oracle.jdbc.driver.OracleDriver. The configured URL is "jdbc:oracle:thin:@localhost:1521:qlink". Using ethereal (A GUI frontend to the packet sniffer tcpdump, which understands the TNS protocol) showed me that this is the connection request being made: "(DESCRIPTION=(CONNECT_DATA=(SID=qlink)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle)))
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))))". I notice it uses SID, where it seems everything else I've analyzed with Ethereal is using SERVICE_NAME. I was first trying to pipe the data through an SSH tunnel. This technique works with all of Oracle's tools that I have tried it with, and with TOAD. I can connect to this Oracle server with the DBA Studio and sqlplus, over an ssh tunnel. But as soon as this JBoss/Tomcat webapp tries, Oracle returns a REDIRECT message. There are two things that strike me as odd: The REDIRECT message returns the hostname of the Oracle server and a nonstandard port; and the JBoss/Tomcat webapp doesn't seem to do anything about it. I has assumed the TNSLSNR forwarded data between 1521 and the appropirate port for requested databse. The port is the same every time, so I made sure that the hostname/port returned was reachable from the client side. But like I said, the client seemed to just ignore it and hang. Getting desparate, I then tried to open up the Oracle ports on the NAT, and use ipchains to restrict what IPs could connect to it, that yielded the same results. I've seen this webapp work with Oracle running on the same machine, both configured identically. (Running Oracle behind the NAT and using SSH tunnels gives the same configuration for JBoss/Tomcat as if I was running Oracle on the same machine)

I'm pretty uninitiated with Oracle. I don't know how to verify/disprove your guess about the shared server dispatcher, or even what it means. Should I try to pursue the observation that the JDBC client specifies a SID to connect to and everything else specifies a SERVICE_NAME, or is that of little consequence? I'm not sure how to interpret the output from 'lsnrctl serv'. Here's the chunk pertaining to the database in question:
qlink has 3 service handler(s)
DISPATCHER established:120 refused:0 current:120 max:254 state:ready
D000 <machine: sark.unboundtech.com, pid: 15801>
(ADDRESS=(PROTOCOL=tcp)(HOST=sark.unboundtech.com)(PORT=41714))
qlink has 3 service handler(s)
DEDICATED SERVER established:46 refused:0
LOCAL SERVER
DISPATCHER established:0 refused:0 current:0 max:254 state:ready
D001 <machine: sark.unboundtech.com, pid: 15803>
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sark.unboundtech.com)(PORT=41716))(PRESENTATION=oracle.aurora.server.SGiopServer)(SESSION=RAW))
Presentation: oracle.aurora.server.SGiopServer
The (ADDRESS=...) is what is returned in the redirect. I created the database with dbassist using the default setup type. I'll have a look at listener.log (the name/location of a log file is actually a question I had but forgot to ask, so thanks), I don't know how to check trace output. The webserver is able to resolve the hostname being returned, and knows how to route to it.
Localhost is the correct entry. If you've never used SSH tunnels here's a quick rundown. You can tell most SSH clients to listen on an arbitraty port on your machine, and forward data to a remote IP/port from the other side. So from the webserver, I would say to forward localhost:1521 to localhost:1521 on the oracle server. So for sqlplus, for example, I setup tnsnames.ora to route connections to a particular SERVICE_NAME to localhost:1521, which is forwarded through my SSH connection, to localhost:1521 on the Oracle server. This lets gains me two things, all connections look like localhost, making my firewall rules simpler, and I get encryption through SSH (I know Oracle can do encrypted connections, but some clients might not support it, and I don't know how to set it up yet.) I am able to connect to the database over an SSH tunnel using sqlplus, from the webserver (since I ended up installing Oracle on it), so I know the connection is possible.
After reading that, you might wonder if the hostname:port returned in the redirect were accessible from the web server. They weren't at first, but opening port 1521 and 41714 for sark.unboundtech.com at the NAT, and firewalling requests from IPs other than the webserver, then giving the JDBC config sark.unboundtech.com instead of localhost with an SSH tunnell yielded identical behavior. After recieving the REDIRECT, the JDBC code doesn't seem to do anything except hang, nothing is sent to the location given in the REDIRECT response.

Similar Messages

  • Communication between client and server

    I am using sockets for communication between the client and the server. is there any other way that i can use for communication between the client and server???

    Plenty of ways: JMS, SOAP, RMI, a RESTful API, writing-files-to-a-shared-directory-on-the-disk, Sneakernet, ...
    Some of them use sockets (or better TCP/IP) as the underlying protocol.
    But to give you a good answer, you would have to tell us why you want a different way. I hope you're not searching for a different way just for the sake of being different.

  • Socket communication between client and server

    Hi all,
    I am doing an assignment for communication between java client and java server using sockets. This communication is in the form of XML documents. I am facing a problem in this communication.
    Actually at Server side I'm creating an XML document(Document type object) using DocumentBuilderFactory in javax.xml.parsers package and transforming this Document into a stream using StreamResult.
    My code is :
    Transformer xmlTransformer = TransformerFactory.newInstance().newTransformer();
    StreamResult xmlString = new StreamResult(currentClientHandler.getSocketOutputStream());
    DOMSource xmlDocSource = new DOMSource(xmlDocument); // xmlDocument is Document type reference
    xmlTransformer.transform(xmlDocSource, xmlString);
    so, this xmlString(i.e. StreamResult) is passed directly into the output stream. Here I need to close() output stream after transform() call to help SAX parser to know about end of stream.
    Now at Client side, I am parsing this stream using SAX parser. It parses this correctly. But when sending some another data back to Server when client opens output stream, it given Socket closed exception. I know that closing input or output stream closes socket. But in my problem, I have to send data in streams and not by using files or byte[] etc.
    So what is nearest solution to problem ??
    Plz help me. Any kind of help will be greatly appreciated.

    hi
    thanks for ur reply.
    I didnt get any error msg while getting the back the datas.
    Actually i divided my application into two parts.
    My application will act as both server and client.
    server ll get the browser request and send to the client and the client will send that data to the c++ server.
    Im able to do that.and unable to get the data from server.
    Didnt get any error.
    can u tell me how to make an application to act as both client and server.
    I think im wrong in that part.
    thanks a lot

  • XML over HTTP between client and server

    We are trying to pass XML between a client and servlet over HTTP.
              We used the code from the StockClient/StockServlet examples as a
              starting point but cannot get it to work. Basically we
              have a simple command line java client that is trying to access
              a VERY simple servlet. When the client tries to write data into
              the output stream associated with the connection I get:
              "Connection rejected: 'Login timed out after: '15000' ms....."
              I have read several postings that instruct me to raise the
              timeout limit, but as you can see, I surely don't need 15 seconds
              to write this data out! Is there something special I need to do?
              Does this have anything to do with known issue #10065
              (http://www.weblogic.com/docs51/release_notes/rn_knownprob51.html)
              I have followed all of the instructions in the example code
              (http://www.weblogic.com/docs51/classdocs/xml.html)...
              Any assistance is appreciated...
              here is the client code:
              import java.io.*;
              import java.net.*;
              public class TestClient
              public static void main(String aa[])
              URL url = null;
              HttpURLConnection urlc = null;
              PrintWriter pw = null;
              file://Commented lines indicate other things I have tried
              try
              url = new URL("http://localhost:7001/ParserServlet");
              file://urlc = url.openConnection();
              urlc = (HttpURLConnection)url.openConnection();
              file://urlc.setRequestProperty("Content-Type", "text/xml");
              urlc.setDoOutput(true);
              urlc.setDoInput(true);
              file://urlc.connect();
              pw = new PrintWriter(new OutputStreamWriter
              (urlc.getOutputStream()), true);
              pw.println("<?xml version='1.0'?><test>testing123</test>");
              pw.flush();
              file://urlc.disconnect();
              } catch(IOException ex) {
              System.out.println(ex.getMessage());
              Here is the servlet code:
              import javax.servlet.*;
              import javax.servlet.http.*;
              import java.io.*;
              import java.net.*;
              public class TestServlet extends HttpServlet
              public synchronized void init(ServletConfig config) throws
              ServletException
              super.init(config);
              System.out.println("Inside init()");
              public final void doPost(HttpServletRequest request, HttpServletResponse
              response)
              throws ServletException, IOException
              System.out.println("Inside doPost()");
              protected void doGet(HttpServletRequest req,
              HttpServletResponse resp)
              throws ServletException,
              java.io.IOException
              System.out.println("Inside doGet()");
              

              Jon,
              One thing is missed in your client code. When you use HTTP POST to send request,
              you have two ways to tell the Web server when to stop reading from your input and
              to start process your input: the first one is using "Content-Lenght" header property
              to specify how many bytes you want to send to your servlet, the seocnd is use "Transfer-Code:
              Chunked" and is much more complicated. I didn't see you pass "Content-Length" in
              your client code, in which case, the Web server (Weblogic) cannot know the end of
              your request data and could keep waiting for last byte to come out or waiting for
              the socket time out (that is what you get).
              Since you use servlet, not JSP, I would recommend to code in this way (it works fine
              for me, no guranttee for your situation):
              Client code: Use a big temprary string, or StringBuffer, or StringWriter to store
              all the request data (your xml file content) before you send out the request. After
              you finish to form your XML string, calculate the number of bytes (should equal to
              the length of the string) and add the request header as
              urlc.setRequestProperty("Content-Length", bytes_length);
              I will not suggest you using PrintWriter. Think use BufferedOutputStream constructed
              from URLConnection and write the bytes (use String.getBytes()) to the servlet and
              then flush.
              Servlet code: in the doPost() of your servlet, try to find the request data length
              by calling request.getContentLength(), then open the InputStream (think to use BufferedInputStream
              for performance). Read the contents from the InputStream byte by byte and counter
              the number of bytes. Once you get the number of bytes as specified via request Content-Length,
              break your reading loop and start whatever you want.
              Hope it helps.
              "Jon Clark" <[email protected]> wrote:
              >We are trying to pass XML between a client and servlet over HTTP.
              >We used the code from the StockClient/StockServlet examples as a
              >starting point but cannot get it to work. Basically we
              >have a simple command line java client that is trying to access
              >a VERY simple servlet. When the client tries to write data into
              >the output stream associated with the connection I get:
              >"Connection rejected: 'Login timed out after: '15000' ms....."
              >I have read several postings that instruct me to raise the
              >timeout limit, but as you can see, I surely don't need 15 seconds
              >to write this data out! Is there something special I need to do?
              >Does this have anything to do with known issue #10065
              >(http://www.weblogic.com/docs51/release_notes/rn_knownprob51.html)
              >I have followed all of the instructions in the example code
              >(http://www.weblogic.com/docs51/classdocs/xml.html)...
              >
              >Any assistance is appreciated...
              >
              >here is the client code:
              >import java.io.*;
              >import java.net.*;
              >
              >public class TestClient
              >{
              > public static void main(String aa[])
              > {
              > URL url = null;
              > HttpURLConnection urlc = null;
              > PrintWriter pw = null;
              >
              > file://Commented lines indicate other things I have tried
              > try
              > {
              > url = new URL("http://localhost:7001/ParserServlet");
              > file://urlc = url.openConnection();
              > urlc = (HttpURLConnection)url.openConnection();
              > file://urlc.setRequestProperty("Content-Type", "text/xml");
              > urlc.setDoOutput(true);
              > urlc.setDoInput(true);
              > file://urlc.connect();
              > pw = new PrintWriter(new OutputStreamWriter
              > (urlc.getOutputStream()), true);
              > pw.println("<?xml version='1.0'?><test>testing123</test>");
              > pw.flush();
              > file://urlc.disconnect();
              > } catch(IOException ex) {
              > System.out.println(ex.getMessage());
              > }
              > }
              >}
              >
              >
              >
              >Here is the servlet code:
              >
              >import javax.servlet.*;
              >import javax.servlet.http.*;
              >import java.io.*;
              >import java.net.*;
              >
              >public class TestServlet extends HttpServlet
              >{
              > public synchronized void init(ServletConfig config) throws
              >ServletException
              >
              >
              > super.init(config);
              > System.out.println("Inside init()");
              > }
              >
              > public final void doPost(HttpServletRequest request, HttpServletResponse
              >response)
              > throws ServletException, IOException
              > {
              > System.out.println("Inside doPost()");
              > }
              >
              > protected void doGet(HttpServletRequest req,
              > HttpServletResponse resp)
              > throws ServletException,
              > java.io.IOException
              > {
              > System.out.println("Inside doGet()");
              > }
              >}
              >
              >
              >
              >
              

  • Signal tranmission between client and server through tcp/ip

    Hi everyone,I want to transmit analog signal from server to the client,I enclosed one file which is used to transfer an array of string,how can I modify the enclosed example for analog signal tranmission(numeric) and save the signal into a file "load to an ASCII file"".kindly help me to modify this code.
    Thanks
    regards,
    Khan_khan
    Attachments:
    ConcatenatedStringToArray.vi ‏11 KB
    Simple Data Client.vi ‏20 KB
    Simple Data Server.vi ‏19 KB

    Dear thanks for your reply and suggestion.I solve somehow the problem as enclosed in the zip file but now there is one problem that i am not getting with. When I run the project, the first array with the name of "array" gives the wrong result in some position.First all slots of array are filled with the right data but then the first index and few other index gives the wrong result.Kindly correct my error.
    The second problem is ,when i increase the frequency of the signal considering also the sampling rate, it gives me unexpected data at multiple locations.Kindly correct my design so that it should work perfectly.I shall be very thankful.
    Attachments:
    ConcatenatedStringToArray.vi ‏13 KB
    Simple Data Client.vi ‏23 KB
    Simple Data Server.vi ‏27 KB

  • 'Is there a link between OLM and iProcurement'

    I have been asked 'Is there a link between OLM and iProcurement'? The person posing the question is wanting to create trainers as suppliers and I know that the supplier information is shared between OLM and the A/P, A/R and G/L modules and I presume that the link to iProcurement will be via one of these modules however is there a more direct vanilla link between OLM and iprocurement?
    Any help would be great
    Thanks
    DM

    I am afraid there is no link between the iProc and OLM.
    The closest that apps can offer you is that your learner/delegates can be of type external i.e. being an Organization or a Customer. Hence there exists a link for your delegate to be a customer(hz_parties).
    However this might be a future integration i.e. Trainers being suppliers. I am saying so because in 11.5.10 there is a table named OTA_VENDOR_SUPPLIES that has reference to vendor_id. Currently this table is not being used by OLM.
    You may look into the code of packages OTA_VSP_API, OTA_TEA_BUS & OTA_PLE_BUS and see if Oracle's future functionality will converge towards your business requirement.
    Thanks,
    Anil Passi
    http://oracle.anilpassi.com

  • Using Lightroom 5.5 and Photoshop CC2014. Images no longer open in Photoshop when using "edit in" command. Photoshop opens but no image when trying to move between LR and PS. Any suggestions?

    Using Lightroom 5.5 and Photoshop CC2014. Images no longer open in Photoshop when using "edit in" command. Photoshop opens but no image when trying to move between LR and PS. Any suggestions?

    1. You have allowed Apple to auto-upgrade your Mac
    Turn off auto-update here:
    Menu > Apple > System Preferences > App Store
    2. The Icons on your dock are Aliases not real apps
    They point to where the apps really are which is:
    For Pages 5.2.2 in your Applications folder
    For Pages '09 in your Applications/iWork folder
    3. You are alternately opening documents randomly with either version of Pages
    Both Pages have the same file extension .pages and there is no certainty as to which version opens them when you double click on a file.
    right click on the file and choose which version you want to open it
    4. Pages '09 can not open Pages 5 files
    Pages 5 can not open Pages '08 files, and will convert and change Pages '09 and Word files.
    It will also auto save opened files into its own format.
    You can export these back to Pages '09 if you need to:
    Menu > File > Export > Pages '09
    5. Yes Pages 5.2.2 is a marked downgrade
    Pages 5.2.2 has a few improvements but has had over 110 features removed and is buggy.
    Sooner or later you will not be able to open a file or have it damaged in some way and it has a complex obscure file format largely incompatible with everything else, so you will not be able to rescue the contents of your file. If Pages or some third party server/eMail don't trash your file, eventually Apple will do it for you as it did when it released Pages 5 last September. I recommend using Pages '09 for the time being whilst you look for viable alternatives, some are here already and some are on the way.
    For further information about what has happened:
    http://www.freeforum101.com/iworktipsntrick/viewforum.php?f=22&sid=0882463378700 abf43a0f2433506bbbc&mforum=iworktipsntrick
    Peter

  • Image size changes when moving an image between Lightroom and CC.

    Image size changes when moving an image between Lightroom and CC.
    I opened a .dng image in LR and then opened it in the Develop module.  I clicked on Crop Overlay and then on the ‘As Shot’ drop down menu (the lock is closed) and cropped to 11 x 17 and clicked ‘Done’-.
    I click Cntl-E and the image opens in CC.  There I click on Image > Image Size and the Image Size  is 13.288 inches by 20.533 inches.
    Why does the image size change?
    I believe there is a menu to control the size of the image and I've looked everywhere I can think of in LR and CC, I googled various descriptions and I checked two of Scott Kelby's books, but I just can't figure out how to keep the image a consistent size when moving between LR and CC.
    Help!...Please?

    The penny will drop soon or maybe the cloud will lift.
    In Lightroom all editing is undoable/nondestructive.
    Hence a crop of 3x2 is not inches, centimetres, pixels or anything else. It is jst a ratio. When a file is exported, either to PS or disk, then the crop ratio has size determined in respect of pixels and inches or cms.
    So my 6000x5000 pixel image I will crop to 3x2 that leaves (before exporting) a 6000x4000 file.
    Now when exported it can be set to export at
    100pixels per inch and will end up at 60x40" when printed.
    200pixels per inch will end up at 30x20"
    300ppi will end at 20x13.3"
    You will notice in the Crop Tool there are no size denominations such as inches or centimetres as an image file only has pixels and the determination of size is done through exporting or printing.
    Hope that helps somewhat..

  • Is there a difference between AirPrint and printing via usb printer plugged into an airport extreme?

    My printer does not show up in the add a printer option on my iMac when plugged into the extreme. I have a HP officejet 5610 All-in-One. I want to be able to print wirelessly using my Airport Extreme.  Thank you

    Is there a difference between AirPrint and printing via usb printer plugged into an AirPort Exreme?
    Big difference. 
    AirPrint for one will not work via USB, so you will not be able to print from an iOS device like an iPhone or iPad using this type of connection unless you look at additional software....that may or may not allow this option.
    Assuming that you get the All-in-One setup using the USB port on the AirPort.......only printing is supported.
    You will not be able to use any other advanced features like maintenance, scan, copy, fax, etc when the device is connected to the USB port on an AirPort.
    If you plan to use the HP for other things, I would strongly recommend that you connect it to your computer.
    My printer does not show up in the add a printer option on my iMac when plugged into the extreme.
    This usually indicates that your printer model is not supported. Check with HP Support to see if they have any updated Macintosh drivers for the 5610 that you could download and install that might allow this.
    HP Officejet 5610 All-in-One Printer Drivers - Hewlett Packard

  • Is there any Link between BNK_MONI and DMEE

    Hi ,
    I have created EXIT Fucntion Module in DMEE Structure for PAYM Tree Type to udpate value of Reference Text node to show Custom value. Stand alone DMEE works fine for Testng purpose. But It does not work with BNK_MONI .
    I am running following sequence of T Codes :
    RVND --> F8REL --> F111 --> BNK_APP --> BNK_MONI ..
    I want to update one of the fields in output file generated by BNK_MONI .
    Is there any link between BNK_MODI and DMEE ?
    Or shall  I have to Debug background job created by F111 like it is done in case of F110 ?
    Please suggest..
    Edited by: Yogesh Gupte on Jan 27, 2012 6:59 PM

    Hi,
    Deliveries that are created without reference to order , contained movement type because to process a delivery you need to have some of the control criteria that are copied from sales document header to delivery document header, as system processes delivery in that way ,that is why you will find default order type is assigned to the delivery document type ie DL. .which helps the delivery document to process without reference to sales document.
    In Addition to above information,
    In VOV4,
    DL+ NORM +   +    -&#61664;DLN
    In VOV5,
    For Itemcatagory DLN+        --&#61664;CN
    From this schedule line category CN,movement type 601 is taken during without reference to order –delivery creation.
    MCM

  • Is There any Relation Between PCD and SSO

    Hi,
      Is there any relation between PCD and SSO, why because if i am try to connect from portal to R/3 in the user mapping i got one error i.e some pcd error.
    pls tell me how to rectify that.
    Regards,
    Jagadish Babu Kanikanti.

    Hi Jagadish
    The PCD is only a central persistance for storing Portal objects. There is no such relation between PCD and SSO that could create a problem. You can however check for the PCD error in this manner.
    1. In the system administration role, choose System Administration -> Support. The Support Desk appears.
    2. Select the area Portal Content Directory.
    3. Click on PCD Configuration in the test and configuration tools. The next screen shows all the parameter values currently maintained for the PCD.
    4. To reload the configuration, choose Reload.
    Hope that helped.
    Best Regards
    Priya

  • I have a web site built by Yahoo Web Site Builder which does not have a Mac version, is there any compatability between Iweb and the old Yahoo program?

    I have a web site built by Yahoo Web Site Builder which does not have a Mac version, is there any compatability between Iweb and the old Yahoo program? If not how do I clear off the old site so as to re publish with Iweb.

    iWeb cannot import published files so you would need rebuild the site.
    Yahoo hosting is notoriously poor and their tech support is awful. I would suggest you look for new hosting and start afresh. Some pointers for choosing hosting...
    http://www.iwebformusicians.com/iWeb/Website-Hosting.html
    If you do choose to go this route, transfer your domain name registration away from Yahoo to your new host.

  • Is there any integration between Payroll and AP or Cash Management?

    Hi All
    Is there any integration between Payroll and AP or Cash Management?
    Regards
    Rahman

    and that document refers to checkwriter as bridge between Payroll and Cash Management.
    Q: But how many legislations have a checkwriter?
    A: Only a very few.
    So that is why i replied 'not really' in the beginning of this thread.

  • Since I upgraded to OS 10.6.8 from 10.5.x my 2x3GHz quad-core Intel Xeon desktop spontaneously turns off as if I pulled the plug. Mostly it happens when there is no open software and it's in the sleep mode, but it has happened while I'm working.

    Since I upgraded to OS 10.6.8 from 10.5.x my 2x3GHz quad-core Intel Xeon desktop spontaneously turns off as if I pulled the plug. Mostly it happens when there is no open software and it's in the sleep mode (because it spends more time like that), but it has happened while I'm working. It just suddenly quits.

    This is a suspicious sign of power supply failure. I would have that checked into. Others who have had similar problems have had the power supplies replaced which fixed the issue.

  • Is there any integration between pages and postal zip codes?

    Is there any integration between pages and postal zip codes?

    Yvan KOENIG (VALLAURIS, France) lundi 27 février 2012
    iMac 21”5, i7, 2.8 GHz, 12 Gbytes, 1 Tbytes, mac OS X 10.6.8 and 10.7.3
    My Box account  is : http://www.box.com/s/00qnssoyeq2xvc22ra4k
    Please, for iWork's applications dedicated to iOS, go to :
    https://discussions.apple.com/community/app_store/iwork_for_ios

Maybe you are looking for

  • XDP data merging on MAC OS X issue.

    We have a problem to merge the xdp data with downloaded pdf form. To identify the problem and to find the solution I created a very simple example - just a form with one text field. The situation now is following: 1. On the server we have a form desi

  • Sending mail smtp vs exchange without outlook mailbox opened

    We have an application published via Citrix Xenapp 6.5 on win2k8r2 servers which uses server-side Outlook for composing/sending mail.  The user does a one time setup of the Outlook profile through a Citrix published Outlook.exe.  After the setup thei

  • Open a PDF file embedded in my app ?

    Hi, In the resources of my application, I can easily embed a PDF file just like I would embed a large mp3 file , video or photo's But.... can I somehow call some code in as3 which then opens that PDF file on the ipad ? So for example I have a book (i

  • [Help] class, interface or enum expected

    I keep getting the error 'class, interface or enum expected'... help :S Here's my .java file > package net.sf.odinms.client.messages.commands; import net.sf.odinms.client.MapleCharacter; import net.sf.odinms.client.messages.CommandDefinition; import

  • Change Overview page of ESS Framework

    Hi, I would like to change the Overview page of the ESS framework and add ICONS and links poiniting to my custom WD for Java applications. Can anyone help me out. I am aware of how to add resources/Services under a sub Area. But I want to also make a