1 2 Previous Next 29 Replies Latest reply: Jan 22, 2008 3:39 AM by 807574 RSS

    How to probe the gateway...

    807574
      Hi people,

      I'm installing IM 7.2 and configure the server and client resources, when i execute the 'configure' tool there is no problem and the 'httpbind' and 'im' web applications are deployec correctly. My problem starts here, I'm going to use JWChat, as I understand I need the gateway because this is the gate to communicate the JWChat with the IM server, but I don't have any idea of how to probe the gateway...

      These are my configure files for the IM:

      iim.conf
      !
      ! iim.conf : XMPP Server Configuration file
      !
      
      !
      ! General configuration options
      ! =============================
      !
      ! Options that are common to all modules.
      
      ! Modules configured - server & multiplexor or only multiplexor?
      iim.comm.modules = "iim_server,iim_mux,iim_wd"
      
      ! Should the email intergration be enabled.
      iim.smtp.enable = "false"
      
      ! SMTP server to contact to send email messages.
      iim.smtpserver = ""
      
      ! Instance directory
      iim.instancedir = "/etc/opt/SUNWiim/default"
      
      ! Instance var directory
      iim.instancevardir = "/var/opt/SUNWiim/default"
      
      ! Product installation directory
      iim.installdir = "/opt/SUNWiim"
      
      
      ! User the IM processes should run as
      iim.user = "root"
      
      ! Group under which the IM processes should run
      iim.group = "root"
      
      ! config file version
      iim.config.version = "1.1"
      
      ! Policy specific options
      ! =======================
      !
      ! This section contains options specific to user sources 
      ! and other policy stuff.
      
      ! The ldap server name and port.
      iim_ldap.host = "ccrldap01.latam.int.grupo.com.mx:31198"
      
      ! The string to be used as base to do searches on this LDAP server.
      iim_ldap.searchbase = "o=isp"
      
      ! Search filter for user login.
      iim_ldap.loginfilter = "(&(objectclass=inetorgperson)(uid={0}))"
      
      !The search filter used to search for users and groups in the directory by id.
      iim_ldap.usergroupbyidsearchfilter = "(|(&(objectclass=groupofuniquenames)(dn={0}))(&(objectclass=inetorgperson)(uid={0})))"
      
      !The search filter used to search for users and groups in the directory by name.
      iim_ldap.usergroupbynamesearchfilter = "(|(&(objectclass=groupofuniquenames)(cn={0}))(&(objectclass=inetorgperson)(cn={0})))"
      
      ! Determine whether wildcard searches should be allowed with uids
      iim_ldap.allowwildcardinuid = "False"
      
      ! The ldap class that indicates that an entry belongs to a user.
      iim_ldap.userclass = "inetOrgPerson"
      
      ! The ldap class that indicates that an entry belongs to a group.
      iim_ldap.groupclass = "groupOfUniqueNames"
      
      ! The search filter used to browse all groups in the directory 
      ! under given base.
      iim_ldap.groupbrowsefilter = "(objectclass=groupofuniquenames)"
      
      ! Maximum number of entries to be returned by a search.
      ! 0 indicates unlimited search and -1 disables all search.
      iim_ldap.searchlimit = "40"
      
      ! Ldap attribute to use for display name of users.
      iim_ldap.userdisplay = "cn"
      
      ! Ldap attribute to use for display name of groups. 
      iim_ldap.groupdisplay = "cn"
      
      ! Ldap attribute used as user uid.
      iim_ldap.useruidattr = "uid"
      
      ! Ldap attribute that gives the list of members of a group. 
      iim_ldap.groupmemberattr = "uniquemember"
      
      ! Ldap attribute where user's email address is
      iim_ldap.usermailattr = "mail"
      
      ! The frequency at which the in memory user and group information
      ! is updated from LDAP, in minutes. 
      iim_ldap.resynctime = "720"
      
      ! Ldap user id used for binding to the directory server
      iim_ldap.usergroupbinddn = "cn=DirectoryManager"
      
      ! Should admin DN of identity server be used for binding to directory server
      iim_ldap.useidentityadmin = "true"
      
      
      ! Deprecated Logging section -- the following will be replaced by
      ! a separate log4j configuration file next release..
      
      !
      ! Logging
      ! =======
      !
      ! Logging configuration for all modules
      
      !
      ! There are 6 severity levels for logs.
      !
      !       DEBUG   debug/trace information
      !
      !       INFO    log important information not indicative of a problem.
      !
      !       WARNING user error.  The sofware is behaving properly but is not
      !               used properly.
      !
      !       ERROR   recoverable software or system error.  The software or 
      !               system is not behaving as expected, however the error
      !               can be recovered from.
      !
      !       FATAL   unrecoverable error forcing the software to 
      !               stop functioning.
      !
      !
      
      ! Log severity for the server component.
      !iim.log.iim_server.severity=INFO
      
      ! Log severity for the watchdog component.
      !iim.log.iim_wd.severity=ERROR
      
      ! New logging mechanism..
      ! Reference to an external log4 configuration file.  Uncomment to start using
      ! external log4j configuration file (defaults are same as above).
      iim.log4j.config = "log4j.conf"
      
      ! server configuration
      ! ====================
      
      ! Name of the domain supported by this server. 
      iim_server.domainname = "latam.int.grupo.com.mx"
      
      ! Should the server listen on the server to server communication port?
      iim_server.useport = "True"
      
      ! Server to server communication port.
      iim_server.port = "5269"
      
      ! Should the server be enabled
      iim_server.enable = "true"
      
      ! Time the server will let a client be idle before disconnecting it,
      ! in minutes. 
      iim_server.clienttimeout = "15"
      
      ! Should the server archive Instant Messages
      iim_server.msg_archive = "false"
      
      ! Message archive provider that the server will use 
      iim_server.msg_archive.provider = "com.iplanet.im.server.EmailIMArchive"
      
      ! whether to use SSO
      iim_server.usesso = "1"
      
      ! whether to use Identity Server for policy storage, default to no (iim_ldap)
      iim.policy.modules = "iim_ldap"
      
      ! user properties storage, can be file or ldap
      iim.userprops.store = "file"
      
      ! Redirect mode server configuration
      ! ==================================
      ! possible values are db, roundrobin,regex, class name 
      ! implementing com.sun.im.provider.Redirector interface
      ! iim_server.redirect.provider=db,roundrobin
      
      ! name and location of the redirect.db
      ! iim_server.redirect.db.users=
      
      ! name and location of the redirect.hosts
      ! iim_server.redirect.db.partitions=
      
      ! The max number of users in a partition
      ! iim_server.redirect.db.partitionsize=
      
      ! name and location of the redirect.hosts for roundrobin
      ! iim_server.redirect.roundrobin.partitions=
      
      ! multiplexor configuration
      ! =========================
      !
      ! Multiplexor specific options
      
      ! IP address and listening port for the multiplexor.
      iim_mux.listenport = "5222"
      
      ! The XMPP server host and port the multiplexor talks to. 
      iim_mux.serverport = "45222"
      
      ! Should the multiplexor be enabled
      iim_mux.enable = "true"
      
      ! Number of instances of the multiplexor. 
      iim_mux.numinstances = "2"
      
      ! Maximum number of threads per instance
      iim_mux.maxthreads = "10"
      
      ! Maximum number of concurrent connections per multiplexor process
      iim_mux.maxsessions = "1000"
      
      ! Log severity for the multiplexor component.
      iim.log.iim_mux.severity = "ERROR"
      
      
      ! watchdog configuration
      ! ======================
      !
      ! Watchdog specific options
      
      ! Should the watchdog component be enabled (default=true)
      iim_wd.enable = "true"
      
      ! Watchdog period in seconds (default=300)
      iim_wd.period = "300"
      
      ! Number of retries before giving up in a 10-period timespan (default=3)
      iim_wd.maxRetries = "3"
      
      
      ! known components/agent. Add yours as needed
      iim_server.components = "agent-calendar,httpbind"
      iim_agent.enable = "true"
      
      
      ! httpbind component (HTTP/XMPP Gateway)
      ! ======================================
      iim_agent.httpbind.enable = "true"
      httpbind.jid = "httpbind.latam.int.grupo.com.mx"
      httpbind.password = "changeit"
      
      
      ! Calendar-IM integration Configuration
      ! =====================================
      ! JMS Consumers
      jms.consumers = ""
      jms.consumer.cal_reminder.destination = "enp:///ics/customalarm"
      jms.consumer.cal_reminder.provider = "ens"
      jms.consumer.cal_reminder.type = "topic"
      jms.consumer.cal_reminder.param = "eventtype=calendar.alarm"
      jms.consumer.cal_reminder.factory = "com.iplanet.im.server.JMSCalendarMessageListener"
      
      ! JMS providers
      jms.providers = ""
      jms.provider.ens.broker = "jess5full.latam.int.grupo.com.mx:57997"
      jms.provider.ens.factory = "com.iplanet.ens.jms.EnsTopicConnFactory"
      iim_agent.agent-calendar.enable = "false"
      agent-calendar.password = ""
      and httpbind.conf
      httpbind.config.version=1.0
      
      # Default configuration values 
      httpbind.hold=5
      httpbind.requests=2
      httpbind.inactivity=180
      httpbind.polling=1
      httpbind.content_type=text/xml; charset=utf-8
      httpbind.round_trip_delay=1
      httpbind.wait_time=120
      
      
      # Configure the domain related info here.
      # A sample entry will look like this :
      # 
      # httpbind.config=entry1 entry2
       
      
      # entry1.domains=foo.com bar.com
      # entry1.hosts=host1.foo.com host2.bar.com
      # entry1.componentjid=httpbind.foo.com
      # entry1.password=secret1
      # 
      # entry2.domains=foo1.com bar1.com
      # entry2.hosts=host1.foo1.com host2.foo1.com host3.bar1.com
      # entry2.componentjid=httpbind.bar1.com
      # entry2.password=secret2
      
      httpbind.config=default
      default.domains=latam.int.grupo.com.mx
      default.hosts=jess5full.latam.int.grupo.com.mx:5222
      default.componentjid=httpbind.latam.int.grupo.com.mx
      default.password=changeit
      httpbind.log4j.config=/etc/opt/SUNWiim/default/config/httpbind_log4j.conf
      Please suggest,
      Thank you
        • 1. Re: How to probe the gateway...
          807574
          Hi,

          I did not see any obvious problems with the configuration.
          What exactly is the issue you are seeing ?

          To test the deployment, you can always try the Sun Java IM client through httpbind gateway - you can supply the httpbind gateway's url in the "Host" field (http://<gatewayhost>/httpbind/httpbind?to=latam.int.grupo.com.mx - use the to= query param if you dont have 'domain' specified in the jnlp) and see if it works.

          Please do note that while running jwchat client, javascript sandbox restrictions apply - one of which is that the client will be able to connect back only to the server it was fetched from (same host:port combination) - in this case it will mean that the jwchat client must be deployed on the httpbind gateway webcontainer.


          Regards,
          Mridul
          • 2. Re: How to probe the gateway...
            807574
            First of all, thanks for your quickly response Mridul....

            Well, I probe the gateway as you recommend, the exact URL I tried is this:
            http://jess5full.latam.int.grupo.com.mx:7070/httpbind/httpbind?to=latam.int.grupo.com.mx
            and this is the answer I get form the server:
            HTTP Status 500 -
            
            type Exception report
            
            message
            
            description The server encountered an internal error () that prevented it from fulfilling this request.
            
            exception
            
            java.io.IOException: HTTP GET not expected
                 com.sun.im.gateway.http.servlet.ConnectionManagerServlet.doGet(ConnectionManagerServlet.java:273)
                 javax.servlet.http.HttpServlet.service(HttpServlet.java:747)
                 javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
                 sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
                 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                 java.lang.reflect.Method.invoke(Method.java:585)
                 org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
                 java.security.AccessController.doPrivileged(Native Method)
                 javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
                 org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
                 org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
            
            note The full stack trace of the root cause is available in the Sun-Java-System/Application-Server logs.
            and in the logs directory of IM server (/var/opt/SUNWiim/default/log) the httpbind.log don't show notting about the request.

            And this is the server.log of mi AppServer

            [#|2007-08-22T11:57:04.525-0500|FINE|sun-appserver-ee8.2|javax.enterprise.system.container.web|_ThreadID=20;|contextPath = /httpbind|#]
            
            [#|2007-08-22T11:57:04.525-0500|FINE|sun-appserver-ee8.2|javax.enterprise.system.container.web|_ThreadID=20;|wrapper = StandardEngine[com.sun.appserv].StandardHost[server].StandardContext[/httpbind].StandardWrapper[httpbind]|#]
            
            [#|2007-08-22T11:57:04.525-0500|FINE|sun-appserver-ee8.2|javax.enterprise.system.container.web|_ThreadID=20;|servletPath = /httpbind|#]
            
            [#|2007-08-22T11:57:04.525-0500|FINE|sun-appserver-ee8.2|javax.enterprise.system.container.web|_ThreadID=20;|pathInfo = null|#]
            
            [#|2007-08-22T11:57:04.525-0500|FINEST|sun-appserver-ee8.2|org.apache.catalina.core.StandardWrapper|_ThreadID=20;|  Returning non-STM instance|#]
            
            [#|2007-08-22T11:57:04.525-0500|FINEST|sun-appserver-ee8.2|javax.enterprise.system.container.web|_ThreadID=20;|*** InstanceEvent: beforeService|#]
            
            [#|2007-08-22T11:57:04.525-0500|FINE|sun-appserver-ee8.2|org.apache.catalina.security.SecurityUtil|_ThreadID=20;|An exception occurs when running the PrivilegedExceptionAction block.
            java.io.IOException: HTTP GET not expected
                    at com.sun.im.gateway.http.servlet.ConnectionManagerServlet.doGet(ConnectionManagerServlet.java:273)
                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:747)
                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
                    at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    at java.lang.reflect.Method.invoke(Method.java:585)
                    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
                    at java.security.AccessController.doPrivileged(Native Method)
                    at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
                    at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
                    at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
                    at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
                    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
                    at java.security.AccessController.doPrivileged(Native Method)
                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
                    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
                    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
                    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
                    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
                    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
                    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
                    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
                    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
                    at com.sun.enterprise.web.connector.httpservice.HttpServiceProcessor.process(HttpServiceProcessor.java:235)
                    at com.sun.enterprise.web.HttpServiceWebContainer.service(HttpServiceWebContainer.java:2114)
            |#]
            
            [#|2007-08-22T11:57:04.526-0500|FINEST|sun-appserver-ee8.2|javax.enterprise.system.container.web|_ThreadID=20;|*** InstanceEvent: afterService|#]
            
            [#|2007-08-22T11:57:04.526-0500|SEVERE|sun-appserver-ee8.2|javax.enterprise.system.container.web|_ThreadID=20;|StandardWrapperValve[httpbind]: Servlet.service() for servlet httpbind threw exception
            java.io.IOException: HTTP GET not expected
                    at com.sun.im.gateway.http.servlet.ConnectionManagerServlet.doGet(ConnectionManagerServlet.java:273)
                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:747)
                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
                    at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    at java.lang.reflect.Method.invoke(Method.java:585)
                    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
                    at java.security.AccessController.doPrivileged(Native Method)
                    at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
                    at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
                    at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
                    at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
                    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
                    at java.security.AccessController.doPrivileged(Native Method)
                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
                    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
                    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
                    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
                    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
                    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
                    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
                    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
                    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
                    at com.sun.enterprise.web.connector.httpservice.HttpServiceProcessor.process(HttpServiceProcessor.java:235)
                    at com.sun.enterprise.web.HttpServiceWebContainer.service(HttpServiceWebContainer.java:2114)
            |#]
            Any suggest? I think the gateway is not working ....


            Thanks in advance (and sorry for my english)....
            • 3. Re: How to probe the gateway...
              807574
              Hi,

              httpbind expects requests framed according the protocol defined for xmpp over http called XEP 124 [1].
              This spec requires use of POST (not GET) and the compliant clients use these semantics. The exception you received indicates that httpbind gateway is deployed (the exception is from the gateway servlet saying GET is not supported).

              Now if you use sun im client (that is 'Server' in 'more details' set to the url you specified below) , or any other XEP 124 compliant client like jwchat , you should be able to connect, authenticate and talk xmpp.

              Regards,
              Mridul

              [1] http://www.xmpp.org/extensions/xep-0124.html
              • 4. Re: How to probe the gateway...
                807574
                Hi MridulM,

                I did one test, here is my code:
                <html>
                  <head>
                    <title>Test</title>
                  </head>
                  <body>
                    <H1>TEST HTTP-XMPP GATEWAY</H1>
                        <FORM ACTION="http://jess5full.latam.int.bbva.bancomer.com.mx:7070/httpbind/httpbind" METHOD="POST">
                        <INPUT TYPE="text" NAME="to"><BR>
                        <INPUT TYPE="submit"><INPUT TYPE="Reset">
                        </FORM>      
                  </body>
                </html>
                As you recommends to prove the POST method and the response was:
                        This XML file does not appear to have any style information associated with it. The document tree is shown below.
                &#8722;
                     <body type="terminate" condition="undefined-condition">
                <uri>null</uri>
                </body>
                I saw this messages on my server.log:
                [#|2007-08-22T16:41:17.774-0500|FINE|sun-appserver-ee8.2|
                javax.enterprise.system.container.web|_ThreadID=19;|context = 
                StandardEngine[com.sun.appserv].StandardHost[server].StandardContext[/httpbind]|
                #]
                [#|2007-08-22T16:41:17.774-0500|FINE|sun-appserver-ee8.2|
                javax.enterprise.system.container.web|_ThreadID=19;|contextPath = /httpbind|
                #]
                [#|2007-08-22T16:41:17.774-0500|FINE|sun-appserver-ee8.2|
                javax.enterprise.system.container.web|_ThreadID=19;|wrapper = 
                StandardEngine[com.sun.appserv].StandardHost[server].StandardContext[/httpbind].StandardWrapper[httpbind]|
                #]
                [#|2007-08-22T16:41:17.774-0500|FINE|sun-appserver-ee8.2|
                javax.enterprise.system.container.web|_ThreadID=19;|servletPath = /httpbind|
                #]
                [#|2007-08-22T16:41:17.774-0500|FINE|sun-appserver-ee8.2|
                javax.enterprise.system.container.web|_ThreadID=19;|pathInfo = null|#]
                [#|2007-08-22T16:41:17.774-0500|FINEST|sun-appserver-ee8.2|
                org.apache.catalina.core.StandardWrapper|_ThreadID=19;|  Returning non-STM 
                instance|#]
                [#|2007-08-22T16:41:17.774-0500|FINEST|sun-appserver-ee8.2|
                javax.enterprise.system.container.web|_ThreadID=19;|*** InstanceEvent: 
                beforeService|#]
                [#|2007-08-22T16:41:17.775-0500|FINE|sun-appserver-ee8.2|
                org.apache.catalina.loader.WebappClassLoader|_ThreadID=19;|
                loadClass(com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl, 
                false)|#]
                [#|2007-08-22T16:41:17.775-0500|FINE|sun-appserver-ee8.2|
                org.apache.catalina.loader.WebappClassLoader|_ThreadID=19;|  Delegating to 
                parent classloader1 EJBClassLoader :
                [#|2007-08-22T16:41:17.776-0500|FINE|sun-appserver-ee8.2|
                org.apache.catalina.loader.WebappClassLoader|_ThreadID=19;|  Loading class 
                from parent|#]
                [#|2007-08-22T16:41:17.776-0500|WARNING|sun-appserver-ee8.2|
                javax.enterprise.system.stream.err|_ThreadID=19;|[Fatal Error] :1:1: Content 
                is not allowed in prolog.
                [#|2007-08-22T16:41:17.777-0500|FINE|sun-appserver-ee8.2|
                org.apache.coyote.tomcat5.OutputBuffer|_ThreadID=19;|Got encoding: 
                ISO-8859-1|#]
                [#|2007-08-22T16:41:17.777-0500|FINE|sun-appserver-ee8.2|
                org.apache.coyote.tomcat5.OutputBuffer|_ThreadID=19;|write(s,off,len)|#]
                [#|2007-08-22T16:41:17.777-0500|FINE|sun-appserver-ee8.2|
                org.apache.coyote.tomcat5.OutputBuffer|_ThreadID=19;|realWrite(c,o,l) 0 121|
                #]
                [#|2007-08-22T16:41:17.778-0500|FINE|sun-appserver-ee8.2|
                org.apache.coyote.tomcat5.OutputBuffer|_ThreadID=19;|encoder:  
                org.apache.tomcat.util.buf.C2BConverter@eda3d8 true|#]
                [#|2007-08-22T16:41:17.778-0500|FINE|sun-appserver-ee8.2|
                org.apache.coyote.tomcat5.OutputBuffer|_ThreadID=19;|realWrite(b, 0, 121) 
                org.apache.coyote.Response@432ed2|#]
                [#|2007-08-22T16:41:17.778-0500|FINEST|sun-appserver-ee8.2|
                javax.enterprise.system.container.web|_ThreadID=19;|*** InstanceEvent: 
                afterService|#]
                [#|2007-08-22T16:41:17.778-0500|FINE|sun-appserver-ee8.2|
                org.apache.coyote.tomcat5.InputBuffer|_ThreadID=19;|recycle()|#]
                I think the httpbind is working, isn't it? But I can't see anything in the log files (httpbind.log & xmppd.log)

                Additionally I can't login to the JWChat, I edit the configure.js file and now looks like this:
                var SITENAME = "jess5full.latam.int.grupo.com.mx";
                (instead of var SITENAME = "localhost";)
                I don't have any idea if a more sophisticate configuration is necessary to use the JWChat.
                • 5. Re: How to probe the gateway...
                  808160
                  Hi,
                  You can try this and see if it works,Make the below changes in config.js
                  var SITENAME = "localhost";

                  the values for the following parameters in var BACKENDS

                  httpbase:"http://jess5full.latam.int.grupo.com.mx:7070/httpbind/httpbind",
                  type:"binding",
                  default_server: SITENAME

                  and also edit

                  var DEFAULTCONFERENCESERVER = "muc.SITENAME";

                  You can launch jwchat client,
                  http://jesss5full.latam.int.grupo.com.mx:7070/jwchat/

                  Here in the server field enter domain name
                  Enter the username and password & click on login.

                  You will be logged into jwchat.

                  Let me know if you need anymore help on this.

                  Regards,
                  Swetha
                  • 6. Re: How to probe the gateway...
                    807574
                    Swetha
                    Thanks for your quickly response Swetha....

                    As you said I edit the config.js file and now I can successfully login through the JWChat, now I have only one little problem with some user's that can't login, I don't know whats the problem with them, I get the following exception:

                    This is the xmppd.log:

                    bash-3.00# tail -f /var/opt/SUNWiim/default/log/xmppd.log 
                    
                    [23 Aug 2007 12:13:46,614] INFO  xmppd [org.netbeans.lib.collab.util.Worker 4] Authenticating using Identity Server SSO
                    [23 Aug 2007 12:13:46,626] INFO  xmppd [org.netbeans.lib.collab.util.Worker 4] node is not valid
                    org.jabberstudio.jso.JIDFormatException: node is not valid
                            at org.jabberstudio.jso.JID.setNode(JID.java:264)
                            at org.jabberstudio.jso.JID.<init>(JID.java:175)
                            at com.iplanet.im.server.ComponentPacketDispatcher.handle(ComponentPacketDispatcher.java:296)
                            at com.iplanet.im.server.ClientSession.packetTransferred(ClientSession.java:434)
                            at net.outer_planes.jso.AbstractStream.firePacketTransferredEvent(AbstractStream.java:674)
                            at net.outer_planes.jso.AbstractStream$1.addExtendedData(AbstractStream.java:115)
                            at net.outer_planes.jso.AbstractStream$Input.process(AbstractStream.java:198)
                            at net.outer_planes.jso.AbstractStream.process(AbstractStream.java:1160)
                            at com.iplanet.im.server.ClientSession.process(ClientSession.java:650)
                            at com.iplanet.im.server.ClientSession.run(ClientSession.java:631)
                            at org.netbeans.lib.collab.util.Worker.run(Worker.java:208)
                            at java.lang.Thread.run(Thread.java:595)
                    And this is my httpbind.log
                    bash-3.00# tail -f /var/opt/SUNWiim/default/log/httpbind.log 
                    
                    
                    [23 Aug 2007 12:13:45,912] INFO  httpbind [service-j2ee] Creating a new session - sid 7659945226715869107 , rid : 810927
                    [23 Aug 2007 12:13:45,912] DEBUG httpbind [service-j2ee] currentSessions for domain : latam.int.grupo.com.mx -> com.sun.im.gateway.http.DomainList@152f7bf
                    [23 Aug 2007 12:13:45,912] DEBUG httpbind [service-j2ee] DefaultComponentSessionChooser: session : com.sun.im.gateway.http.ComponentSession@71bc7 for domain - latam.int.grupo.com.mx , connected : true , match : -1 , retval : null
                    [23 Aug 2007 12:13:45,912] DEBUG httpbind [service-j2ee] DefaultComponentSessionChooser: returned session for domain - latam.int.grupo.com.mx -> com.sun.im.gateway.http.ComponentSession@71bc7 , match : 0
                    [23 Aug 2007 12:13:45,912] INFO  httpbind [service-j2ee] sid - 7659945226715869107 using server : jess5full.latam.int.grupo.com.mx
                    [23 Aug 2007 12:13:46,042] DEBUG httpbind [service-j2ee] waitForRidMatch : 810927 -> 810928
                    [23 Aug 2007 12:13:46,042] DEBUG httpbind [service-j2ee] waitTimeLeft [7659945226715869107] : 120
                    [23 Aug 2007 12:13:46,042] DEBUG httpbind [service-j2ee] request.getChildNodes().getLength() : 1
                    [23 Aug 2007 12:13:46,042] DEBUG httpbind [service-j2ee] isAuthDone() : false
                    [23 Aug 2007 12:13:46,042] DEBUG httpbind [service-j2ee] AuthHandlerFactory.createAuthHandler() : 1
                    [23 Aug 2007 12:13:46,045] DEBUG httpbind [SelectWorker 0] packetTransferred(PacketEvent) :  , packetHandler : com.sun.im.gateway.http.HTTPBindSessionManager@872ac6
                    [23 Aug 2007 12:13:46,045] DEBUG httpbind [SelectWorker 0] handleServerPacket , to : null , id : auth1:7659945226715869107
                    [23 Aug 2007 12:13:46,550] DEBUG httpbind [service-j2ee] isAuthDone() : false authHandler : com.sun.im.gateway.http.SimpleAuthHandler@14023be
                    [23 Aug 2007 12:13:46,550] DEBUG httpbind [service-j2ee] handleResponse [ auth1] false , isdone : false
                    [23 Aug 2007 12:13:46,550] DEBUG httpbind [service-j2ee] authHandler.handleResponse [ 7659945226715869107] authDone : false
                    [23 Aug 2007 12:13:46,612] DEBUG httpbind [service-j2ee] waitForRidMatch : 810928 -> 810929
                    [23 Aug 2007 12:13:46,612] DEBUG httpbind [service-j2ee] waitTimeLeft [7659945226715869107] : 120
                    [23 Aug 2007 12:13:46,612] DEBUG httpbind [service-j2ee] request.getChildNodes().getLength() : 1
                    [23 Aug 2007 12:13:46,612] DEBUG httpbind [service-j2ee] isAuthDone() : false
                    [23 Aug 2007 12:13:46,613] DEBUG httpbind [service-j2ee] HTTPBindSession.processInputRequest[null] : addAuthIQId
                    [23 Aug 2007 12:13:57,350] DEBUG httpbind [Thread-117] Session reaper wakes up !
                    But when I create a new user, he can login successfully into the JWChat...

                    Once again thanks a lot Mridul and Swetha ....
                    • 7. Re: How to probe the gateway...
                      807574
                      Hi,

                      Which are the users who cant log in ? (please also include the user id's who can log in - no passwords required)
                      It might be because they have invalid characters which have not escaped.

                      Regards,
                      Mridul
                      • 8. Re: How to probe the gateway...
                        807574
                        Hi,
                        I'd already identified the problem (I think so), for example:
                        If the user has this values in the AM
                        Lastname=lalo
                        Full Name=lalo
                        (uid=lalo,cn=lalo)
                        The user can login into JWChat

                        If I change the cn of the user, he can't login, for example

                        Lastname=lalo
                        Full Name=lalo conde
                        (uid=lalo,cn=lalo conde)
                        The user can't login into JWChat

                        httpbind.log
                        bash-3.00# tail -f /var/opt/SUNWiim/default/log/httpbind.log 
                        [23 Aug 2007 16:11:49,566] INFO  httpbind [service-j2ee] Creating a new session - sid 8633395937779087813 , rid : 791358
                        [23 Aug 2007 16:11:49,566] DEBUG httpbind [service-j2ee] currentSessions for domain : latam.int.grupo.com.mx -> com.sun.im.gateway.http.DomainList@1d56a94
                        [23 Aug 2007 16:11:49,566] DEBUG httpbind [service-j2ee] DefaultComponentSessionChooser: session : com.sun.im.gateway.http.ComponentSession@f74735 for domain - latam.int.grupo.com.mx , connected : true , match : -1 , retval : null
                        [23 Aug 2007 16:11:49,566] DEBUG httpbind [service-j2ee] DefaultComponentSessionChooser: returned session for domain - latam.int.grupo.com.mx -> com.sun.im.gateway.http.ComponentSession@f74735 , match : 0
                        [23 Aug 2007 16:11:49,566] INFO  httpbind [service-j2ee] sid - 8633395937779087813 using server : jess5full.latam.int.grupo.com.mx
                        [23 Aug 2007 16:11:49,782] DEBUG httpbind [service-j2ee] waitForRidMatch : 791358 -> 791359
                        [23 Aug 2007 16:11:49,782] DEBUG httpbind [service-j2ee] waitTimeLeft [8633395937779087813] : 120
                        [23 Aug 2007 16:11:49,782] DEBUG httpbind [service-j2ee] request.getChildNodes().getLength() : 1
                        [23 Aug 2007 16:11:49,782] DEBUG httpbind [service-j2ee] isAuthDone() : false
                        [23 Aug 2007 16:11:49,782] DEBUG httpbind [service-j2ee] AuthHandlerFactory.createAuthHandler() : 1
                        [23 Aug 2007 16:11:49,785] DEBUG httpbind [SelectWorker 0] packetTransferred(PacketEvent) :  , packetHandler : com.sun.im.gateway.http.HTTPBindSessionManager@b86342
                        [23 Aug 2007 16:11:49,785] DEBUG httpbind [SelectWorker 0] handleServerPacket , to : null , id : auth1:8633395937779087813
                        [23 Aug 2007 16:11:50,290] DEBUG httpbind [service-j2ee] isAuthDone() : false authHandler : com.sun.im.gateway.http.SimpleAuthHandler@9ed3e0
                        [23 Aug 2007 16:11:50,290] DEBUG httpbind [service-j2ee] handleResponse [ auth1] false , isdone : false
                        [23 Aug 2007 16:11:50,290] DEBUG httpbind [service-j2ee] authHandler.handleResponse [ 8633395937779087813] authDone : false
                        [23 Aug 2007 16:11:50,372] DEBUG httpbind [service-j2ee] waitForRidMatch : 791359 -> 791360
                        [23 Aug 2007 16:11:50,372] DEBUG httpbind [service-j2ee] waitTimeLeft [8633395937779087813] : 120
                        [23 Aug 2007 16:11:50,372] DEBUG httpbind [service-j2ee] request.getChildNodes().getLength() : 1
                        [23 Aug 2007 16:11:50,372] DEBUG httpbind [service-j2ee] isAuthDone() : false
                        [23 Aug 2007 16:11:50,373] DEBUG httpbind [service-j2ee] HTTPBindSession.processInputRequest[null] : addAuthIQId
                        [23 Aug 2007 16:11:54,153] DEBUG httpbind [service-j2ee] waitForRidMatch : 791360 -> 791361
                        [23 Aug 2007 16:11:54,153] DEBUG httpbind [service-j2ee] waitTimeLeft [8633395937779087813] : 120
                        [23 Aug 2007 16:11:54,153] DEBUG httpbind [service-j2ee] request.getChildNodes().getLength() : 3
                        [23 Aug 2007 16:11:54,153] DEBUG httpbind [service-j2ee] isAuthDone() : false
                        [23 Aug 2007 16:11:54,153] DEBUG httpbind [service-j2ee] Got terminate body request from client - would be closing session
                        [23 Aug 2007 16:11:54,154] DEBUG httpbind [service-j2ee] getCurrentRid() > currentRid : 791361 > 791361
                        [23 Aug 2007 16:11:54,157] DEBUG httpbind [SelectWorker 0] packetTransferred(PacketEvent) :  , packetHandler : com.sun.im.gateway.http.HTTPBindSessionManager@b86342
                        [23 Aug 2007 16:11:54,157] DEBUG httpbind [SelectWorker 0] handleServerPacket , to : null , id : :8633395937779087813
                        xmppd.log
                        bash-3.00# tail -f /var/opt/SUNWiim/default/log/xmppd.log 
                        [23 Aug 2007 16:11:50,374] INFO  xmppd [org.netbeans.lib.collab.util.Worker 3] Authenticating using Identity Server SSO
                        [23 Aug 2007 16:11:50,383] INFO  xmppd [org.netbeans.lib.collab.util.Worker 3] node is not valid
                        org.jabberstudio.jso.JIDFormatException: node is not valid
                                at org.jabberstudio.jso.JID.setNode(JID.java:264)
                                at org.jabberstudio.jso.JID.<init>(JID.java:175)
                                at com.iplanet.im.server.ComponentPacketDispatcher.handle(ComponentPacketDispatcher.java:296)
                                at com.iplanet.im.server.ClientSession.packetTransferred(ClientSession.java:434)
                                at net.outer_planes.jso.AbstractStream.firePacketTransferredEvent(AbstractStream.java:674)
                                at net.outer_planes.jso.AbstractStream$1.addExtendedData(AbstractStream.java:115)
                                at net.outer_planes.jso.AbstractStream$Input.process(AbstractStream.java:198)
                                at net.outer_planes.jso.AbstractStream.process(AbstractStream.java:1160)
                                at com.iplanet.im.server.ClientSession.process(ClientSession.java:650)
                                at com.iplanet.im.server.ClientSession.run(ClientSession.java:631)
                                at org.netbeans.lib.collab.util.Worker.run(Worker.java:208)
                                at java.lang.Thread.run(Thread.java:595)
                        [23 Aug 2007 16:11:54,904] INFO  xmppd [Thread-2] [NioSelectAcceptor][0.0.0.0:5269] accepted /127.0.0.1
                        I can't have the uid equals to cn, what do I change to solve this issue? I think it's a problem of JWChat, because using the IM 'native' client all users can login and the im.jnlp file is actually point to the gateway.

                        Additionally one of the user's that can't login has the uid=frank,ou=People,o=EnterpriseSample,o=isp, and the cn='frank frank', if i change the cn to frank he still failing to loginand this not happen with other users.
                        • 9. Re: How to probe the gateway...
                          807574
                          Hi,

                          Your uid filter does not use the cn - so you should really be using only 'lalo' and not 'lalo conde' in jwchat.

                          Even assuming you change this, jwchat does not implement xep 106 [1] which specifies JID encoding - which is required to represent node's with prohibited characters like space, '@', etc in them.
                          So currently, using jwchat, you cannot use these prohibited characters in the user id until it implements xep 106 - <space>, ", &, ', /, :, <, >, @, \

                          Regards,
                          Mridul

                          [1] http://www.xmpp.org/extensions/xep-0106.html
                          • 10. Re: How to probe the gateway...
                            807574
                            Hi,

                            I changed the value of iim_ldap.userdisplay propertie under file /etc/opt/SUNWiim/default/config/iim.conf from
                            iim_ldap.userdisplay = "cn" to
                            iim_ldap.userdisplay = "uid" and now I can login user whit 'cn' different from 'uid' indeed I only try to login the JWChat using 'uid' like 'lalo', 'frank','osvaldo',etc, the problem occurs when a user for example 'osvaldo' has a 'cn' different to 'uid', for example:

                            This user can login

                            dn: uid=osvaldo,ou=People,o=EnterpriseSample,o=isp
                            uid: osvaldo
                            cn: osvaldo

                            The same user with a modified 'cn' can't login into JWChat if in the iim.conf file has the propertie iim_ldap.userdisplay set to "cn", but if the value is set as iim_ldap.userdisplay="uid" the user can login.

                            dn: uid=osvaldo,ou=People,o=EnterpriseSample,o=isp
                            uid: osvaldo
                            cn: osvaldo rangel

                            What can I do to solve this, because the uid and the cn are not going to be equals, for example:

                            uid:mx.mx5467
                            cn:osvaldo rangel

                            and the request is to authenticate using the uid for all users...


                            Thank's in advance...
                            • 11. Re: How to probe the gateway...
                              807574
                              Hi,

                              The server uses the "iim_ldap.useruidattr" attribute to identify the user, and it is expected to be unique across the user population.
                              By default (and in your config) it is set to the 'uid' ldap attribute - so, server will uid as the unique identifier for identifying a user, authenticating the user, and construction of the JID's.
                              The cn is only used for display purposes (primarily by client).

                              So, in the deployment described, uid must be used for authenticating the user, and identifying contacts. The cn has almost no part to play in this, and it can/need not be same as uid. (normally, uid is not same as cn).


                              Regards,
                              Mridul

                              PS: Apologies for the delay, somehow I missed the notification of your message post.
                              • 12. Re: How to probe the gateway...
                                807574
                                Hi!

                                I have RHEL 5 and Sun Java(TM) Communications Suite 5.
                                I was succesfully installed, work allrights IM java login with hostname:80/im/.

                                I'd like using IM over HTTP (httpbind), but /var/opt/sun/webserver7/https-hostname/web-app/hostname/httpbind/ is empty. (Only have META-INF, WEB-INF)

                                Can you help me, please?

                                Zoltan
                                • 13. Re: How to probe the gateway...
                                  807574
                                  Hi,
                                  What you are seeing is correct.If you want to use IM over httpbind,you can launch the im.jnlp and in the login window in server field specify gateway url i.e.,
                                  http://<hostname:webserverport>/httpbind/httpbind?to=<imserverdomainname> and login

                                  Here i assume you have specified httpbind configuration details in iim.conf

                                  Hope this helps,Let me know if you need any more help.

                                  Regards,
                                  Swetha
                                  • 14. Re: How to probe the gateway...
                                    807574
                                    Hi!

                                    Thank you for post.

                                    I get error (error log):
                                    [22/Jan/2008:09:03:35] failure ( 8522): for host 192.168.1.105 trying to GET /httpbind/httpbind, service-j2ee reports: Stan
                                    dardWrapperValve[httpbind]: PWC1406: Servlet.service() for servlet httpbind threw exception
                                    java.io.IOException: HTTP GET not expected
                                            at com.sun.im.gateway.http.servlet.ConnectionManagerServlet.doGet(ConnectionManagerServlet.java:273)
                                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:796)
                                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:917)
                                            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:391)
                                            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:272)
                                            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:241)
                                            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:182)
                                            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
                                            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:160)
                                            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
                                            at com.sun.webserver.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:149)
                                            at com.sun.webserver.connector.nsapi.NSAPIConnector.service(NSAPIConnector.java:995)
                                    1 2 Previous Next