when I start run.sh get error below:

Help
Anonymous
2012-06-26
2013-05-28
1 2 > >> (Page 1 of 2)
  • Anonymous - 2012-06-26

    2012-06-26 13:43:13.518: starting main Internal Chat thread
    2012-06-26 13:43:13.519: general error while Internal Chat Server work
    java.lang.IllegalArgumentException: Key doesn't exist in configuration file: JDBCDriver
            at avoware.intchat.server.IntChatServerSettings.getStringValue(IntChatServerSettings.java:99)
            at avoware.intchat.server.IntChatServer.Run(IntChatServer.java:192)
            at avoware.intchat.server.IntChatServer.main(IntChatServer.java:123)

    Intchat 5.7.303, Mysql 5.0.95

     
  • Andrew Orlov

    Andrew Orlov - 2012-06-26

    Hello!

    Suppose the problem is in wrong configuration in ./conf/Server.xml. Probably you commented PostgreSQL section but didn't uncomment MySQL section. You can see, these sections repeat each other, you should choose only one (MySQL in the case) and set properly values (host, port etc.) to access database.

    Andrew

     
  • Anonymous - 2012-06-26

    Thanks your reply.

    You see:

    I only leave one (Mysql) in Server.xml, Is this feasible?

    <!- MySQL ->
    <!-
    <JDBCDriver>com.mysql.jdbc.Driver</JDBCDriver>
    <DBHost>localhost</DBHost>
    <DBPort>3306</DBPort>
    <DBName>intchat</DBName>
    <DBUser>test</DBUser>
    <DBPassword>123456</DBPassword>
    <DBProperties>./conf/mysql.xml</DBProperties>
    ->

     
  • Andrew Orlov

    Andrew Orlov - 2012-06-26

    Yes, but additionally you shoud remove beginning of comment (the next line after "<!- MySQL ->": <!- ) and its ending (last line: ->).

    Otherwise MySQL section is left commented.

     
  • Anonymous - 2012-06-26

    Hi Boss,

    When I try to start the server.

    2012-06-26 16:07:29.657: starting main Internal Chat thread
    2012-06-26 16:07:29.73: database connection pool creation is started
    2012-06-26 16:07:30.491: database connection pool is created
    2012-06-26 16:07:30.492: database connection pool creation is started
    2012-06-26 16:07:30.833: database connection pool is created
    2012-06-26 16:07:30.879: creating connectors
    2012-06-26 16:07:30.894:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
    2012-06-26 16:07:30.945: creating session and log handlers and contexts
    2012-06-26 16:07:31.167: creating Jetty thread pool
    2012-06-26 16:07:31.169: starting explicit garbage collector
    2012-06-26 16:07:31.169: starting server
    2012-06-26 16:07:31.169:INFO::jetty-6.1.26
    2012-06-26 16:07:31.206:INFO::Started SelectChannelConnector@0.0.0.0:6556
    2012-06-26 16:16:02.161: Internal Chat Server is stopped

    I can't do anything In addition to closing it.

    I test the client connection and get info:

    2012-06-26 16:10:57.73: Application started
    2012-06-26 16:11:21.191: Trying to establish connection
    java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.skip(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.handleException(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
    at avoware.intchat.client.transport.HttpClient$LoginRequest.doInBackground(HttpClient.java:461)
    at avoware.intchat.client.transport.HttpClient$LoginRequest.doInBackground(HttpClient.java:375)
    at avoware.intchat.client.api.concurrent.SwingWorker.run(SwingWorker.java:107)
    javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source)
    at sun.security.ssl.InputRecord.read(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
    at avoware.intchat.client.transport.HttpClient$LoginRequest.doInBackground(HttpClient.java:461)
    at avoware.intchat.client.transport.HttpClient$LoginRequest.doInBackground(HttpClient.java:375)
    at avoware.intchat.client.api.concurrent.SwingWorker.run(SwingWorker.java:107)

    I changed the Server.xml:<UseSSL>FALSE</UseSSL>.

     
  • Andrew Orlov

    Andrew Orlov - 2012-06-26

    OK, I see that your server is started successfully without SSL (because it uses SelectChannelConnector).

    Now when you connect client to server, client first test if connection supports SSL. If not, it writes exception shown above and switch to non-SSL connection. It is not error, it is its common behaviour.

    And you should connect without any problems. But I can't see any connection log messages in server log. It means that either you connect to another server (wrong host?) or your firewall blocks all connections. Check it.

     
  • Anonymous - 2012-06-26

    The DB is on other server, which one should I connect? I use DB address this time.

    Which account should be used by client? I use the DB account which used for Remote connection.

     
  • Andrew Orlov

    Andrew Orlov - 2012-06-26

    In general you have 3 computers: database (with some database_ip), internal chat server (with some ic_server_ip) and internal chat client (with some ic_client_ip).

    IC Server - Database connection you set up successfully (we can see it in server log).

    Now you shoud connect your IC Client to IC Server. So, on client side in connection settings your should put ic_server_ip (not database_ip!) in Host field.

    And to connect first time your should use the following credentials:
    Login: admin
    Password: admin

    Process is very straightforward, without any hints.

     
  • Anonymous - 2012-06-27

    Thanks, Boss.

    Now I can connect.

    I see the user authentication via LDAP, but some of the settings I am not very clear.

    Can you help again?

    Testing AD with win2008.

    Domain:dc= xincheng,dc=com
    URL: ldap://10.0.6.100
    Principal format: cn=LDAP,ou=Office,dc=xincheng,dc=com
    Displayed name attribute: cn
    Login attribute: sAMAccountName
    Mapping attribute: sAMAccountName
    Attribute type: Text
    Search base: ou=Office,dc=xincheng,dc=com
    Filter: objectClass=Person

     
  • Andrew Orlov

    Andrew Orlov - 2012-06-27

    Hi!

    I'm glad you did it!

    About LDAP.

    1. Check Principal format. For AD it is usual "%u@%d" (it means that principal has format user@domain.com).
    2. Be very careful with spaces. I can see extra space in Domain field.
    3. After you create authentication source you should import users from AD. This operation can be repeated as many times as you need. For the first time I suggest you to import just several test users. Import means that new IC users willl be created with external type of authentication, mapped to AD users.
    4. After you import some users, you can try to connect using their AD credentials. WARNING: as login you should use full user principal format! For example: you have user JOHN in your AD, with full user principal JOHN@DOMAIN.COM. To connect to IC your should put JOHN@DOMAIN.COM as login, password must me usual AD password.

    Login in user principal format will signal to IC Server that for such user authentication is external. Otherwise it will try to authenticate him against internal database and it will failed.

     
  • Anonymous - 2012-06-28

    HAHA,

    I found that the filter is also a problem, need to add a parenthesis.

    Thanks again.

     
  • Andrew Orlov

    Andrew Orlov - 2012-06-28

    Yes, you are absolutely right! I forgot to mention it…

     
  • Anonymous - 2012-07-17

    Hi Boss,

    It seems that LDAP is limited, I have almost 500 users in one OU, but Intchat only display about 100 when i do import, and I can't use submit in the button of the page.

    Can you help on this?

     
  • Andrew Orlov

    Andrew Orlov - 2012-07-17

    Hi

    Actually I can't answer right now, but today I'll try to reproduce your error.

    The strangeness is that we in our production environment have integration with 2 AD catalogs, and the first one is rather big (more that 2000 users). Just about 350 of them are Internal Chat users, but our admins have not had any troubles to import any number of users whenever they want.

    What version of Java you use and on what platform?

    P.S. Right now I rewrite a lot of IC-LDAP integration code (hope, make it easier to use), and any info about issues will be useful…

     
  • Andrew Orlov

    Andrew Orlov - 2012-07-17

    Please, first of all check the following:
    in Client go to System - Console and tell me, if there any "java.lang.OutOfMemoryError: Java heap space" exists?

     
  • Anonymous - 2012-07-17

    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at avoware.intchat.client.html.IntChatFormView$1.run(IntChatFormView.java:232)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.WaitDispatchSupport$2.run(Unknown Source)
    at java.awt.WaitDispatchSupport$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(Unknown Source)
    at java.awt.Dialog.show(Unknown Source)
    at java.awt.Component.show(Unknown Source)
    at java.awt.Component.setVisible(Unknown Source)
    at java.awt.Window.setVisible(Unknown Source)
    at java.awt.Dialog.setVisible(Unknown Source)
    at avoware.intchat.client.IntChatBrowserDialog.initialize(IntChatBrowserDialog.java:258)
    at avoware.intchat.client.IntChatBrowserDialog.<init>(IntChatBrowserDialog.java:100)
    at avoware.intchat.client.IntChatMainFrame.showBrowserWindow(IntChatMainFrame.java:1199)
    at avoware.intchat.client.IntChatMainFrame.access$4800(IntChatMainFrame.java:131)
    at avoware.intchat.client.IntChatMainFrame$AdministrationAction.actionPerformed(IntChatMainFrame.java:1918)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space

     
  • Anonymous - 2012-07-17

    What version of Java you use and on what platform?

    Server: Centos 5.6 and JDK1.7.0_05
    Client: Windows 7 Pro x64 and JRE 6u26

     
  • Andrew Orlov

    Andrew Orlov - 2012-07-17

    OK, the root of problem is clear. There is not enough memory on client side (small heap size). So, we must increase heap.

    How do you start client? Via WebStart or directly executing JAR?

    If via WebStart, you can do the following: go to Chat Tools - Administration Tasks - System settings and set JNLP_VM_ARGS to some value bigger that default (-Xmx512m). For example, -Xmx1024m (heap size will be set to 1GB). After that you should clear WebStart cache (otherwise it will use old JNLP-file) and start client again. And try to import from LDAP again.

    If from command line, try to add  -Xmx1024m to your command:
    java -Xmx1024m -jar IntChatClient.jar

    And the most right way, I suppose, is to make LDAP filter more strict (or limit search area some specific OU). It will decrease the number of results returned, and all of them are fit into client memory.

     
  • Anonymous - 2012-07-17

    Ok, How can I  clear WebStart cache?

     
  • Andrew Orlov

    Andrew Orlov - 2012-07-17

    On client computer go to Control Panel - Java - General - Temporary Internet Files - Settings - Delete files.

     
  • Anonymous - 2012-07-17

    The Result with no changed regardless of the heap setting.(Via webstart)

    I cleared the cache.

     
  • Anonymous - 2012-07-17

    Should i increase the IntChat server Memory? Now It only have 1 GB inside.

     
  • Andrew Orlov

    Andrew Orlov - 2012-07-17

    No need to increase server memory (if server works without OutOfMemory exceptions in log).

    The problem we are talking about is client problem - server sends very big HTML and when client shows it, client eats all available heap.

    There are two ways to solve problem:
    1. increase heap size up to appropriate value (we increased it up to 1GB, if it is not enough, we can move further). But obviously, this way is limited by phisical RAM amount on client computer.
    2. narrow LDAP search area (for example, one OU) and/or make filter more strict. It will decrease the number of results returned.

    I recommend you to take IntChatClient.jar from ./webstart folder on server, put it on client computer and start it via command line explicit Java Heap Size:

    java -Xmx1024m -jar IntChatClient.jar

    (you can set more that 1024m - this is just for example).

    And try to make import from LDAP.

    Right now I did similar thing. I took my Webstart-started IntChatClient (with default heap size of 512m), opened Import from LDAP and tried to CtrlC-CtrlV page appeared into Notepad. I failed, and my Client wrote in Console about OutOfMemory exception.

    Then I took IntChatClient.jar and started it locally with -Xmx1024m. And did the same operations - CtrlC-CtrlV was successful, buffer size appeared enough for such operation.

    Alas, but this is some specific in Java programs. They are too cleverin working with memory, and OutOfMemory exceptions are supposed to be the most popular problems with Java.

    I promise to make some suitable fix for such issue (a lot of data returned from really big LDAP catalogs) in next release.

     
  • Anonymous - 2012-07-17

    Three Issue here;

    1. I need an domain admin user to do the authentication.
    2. The LDAP is not synchronization, when i change the pass in domain, i can only use the old pass to do log in.
    3. I can not find the same account with LDAP search even though I had deleted it in the system.

     
  • Andrew Orlov

    Andrew Orlov - 2012-07-17

    May I ask you for some details?

    1. "I need an domain admin user to do the authentication."
    Do you mean that only being domain admin your IC-client can authenticate against LDAP after you set it up?

    2. "The LDAP is not synchronization, when i change the pass in domain, i can only use the old pass to do log in."
    When you setup some IC-user for external authentication, no password is stored on IC-server side. Password of that IC-user is always checked against LDAP in such situation. So, if he changes password in AD, he won't come into IC until he use new password in IC. May be, I got you wrong?

    3. "I can not find the same account with LDAP search even though I had deleted it in the system."
    You delete user, want to create him again and can not find him during import from LDAP?

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks