Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

The Taking Notes Podcast


Lotus Notes/Domino -- продукт и инструмент. Выпуск: 537

2012-05-05
Поиск по сайтам о Lotus Notes

Содержание:

CodeStore. Коды Примеры Шаблоны (1)

Solution to Java Applet Puzzle | Blog

Интенет эфир о Lotus Notes. Блоги и форумы (5)

Я добавил новую бесплатную программу - Mobile Master 7.9.14
Ищу работу мужу, специальность - журналист. У кого есть вакансия ? :)
Выпуск рассылки "Бюллетень "Lotus Notes CodeStore" No 509 от 2012-05-04" от 04 ...
Выпуск рассылки "Lotus Notes/Domino -- продукт и инструмент. Выпуск: 529" от 04 ...
Файлы для ПК - Программы ПК - Для работы с телефонами - стр 2

Закладки о Lotus Notes (3)

The Taking Notes Podcast
Guardian Unlimited Technology | Technology | Survival of the unfittest
Learning Lotus Notes clients
Спонсоры рассылки:
Поиск по сайтам о Lotus Notes/Domino
Полнотекстовый поиск по тематическим сайтам о Lotus Notes
Хостинг на Lotus Domino















Блиц опрос
Материалы на английском
(голосование возможно только из письма рассылки)
  • Нормально. Могу читать
  • Не годиться. Хочу только на русском
  • Компания ПУЛ - разработка приложений на Lotus Notes/Domino

    CodeStore. Коды Примеры Шаблоны

    1. Solution to Java Applet Puzzle | Blog

    Here's the explanation and the solution to the Java applet issue I mentioned yesterday.

    As you saw the page combined a Domino Java View applet and an ActionBar applet. They are two separate applets. They talk to each other using JavaScript. You can see how by looking at the source to the page.

    Clicking the Refresh button on the applet calls this JavaScript function:

    function Action1_onClick() {
     document.applets.view.refresh();
     return false;
    }
    

    That code is calling an exposed method of the View applet called "refresh()". And it's failing. Why?

    Well, having isolated the issue to the Java code I needed to get to see the Java console in the hope that any errors were dumped there.

    I'd previously told Java not to add an icon to the Task Tray in Windows. If you do see the Java icon down there you can right click it and choose "Show Console".

    After some digging I found out how to get to see the Java console. All you do is go to the Control Panel, open the Java options from there and make sure the following options are selected:

    image

    Next time you open the webpage with the Applets you should see the console appear and start logging, like so:

    image

    If it appears but with less logging detail, focus on the console and press "5" to set the logging level to verbose and reload the page.

    With the console on display I then pressed the Refresh button again and "thankfully" saw an error, as below:

    network: Connecting http://www.codestore.net/apps/applets.nsf/view?ReadViewEntries&PreFormat&Start=2.1&Navigate=15&Count=40&SkipNavigate=32784&SkipCount=2 with proxy=DIRECT
    
    An error occurred while reading in documents: java.security.AccessControlException: access denied (java.net.SocketPermission 63.254.226.99:80 connect,resolve)
    java.security.AccessControlException: access denied (java.net.SocketPermission 63.254.226.99:80 connect,resolve)
                    at java.security.AccessControlContext.checkPermission(Unknown Source)
                    at java.security.AccessController.checkPermission(Unknown Source)
                    at java.lang.SecurityManager.checkPermission(Unknown Source)
                    at java.lang.SecurityManager.checkConnect(Unknown Source)
                    at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
                    at java.net.Socket.connect(Unknown Source)
                    at sun.net.NetworkClient.doConnect(Unknown Source)
                    at sun.net.www.http.HttpClient.openServer(Unknown Source)
                    at sun.net.www.http.HttpClient.openServer(Unknown Source)
                    at sun.net.www.http.HttpClient.<init>(Unknown Source)
                    at sun.net.www.http.HttpClient.New(Unknown Source)
                    at sun.net.www.http.HttpClient.New(Unknown Source)
                    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
                    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
                    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
                    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
                    at lotus.notes.apps.viewpanel.ViewPanel.postUNIDList(Unknown Source)
                    at lotus.notes.apps.viewpanel.ViewPanel.postUNIDList(Unknown Source)
                    at lotus.notes.apps.viewpanel.ViewPanel.ReadAndParseViewEntries(Unknown Source)
                    at lotus.notes.apps.viewpanel.ViewPanel.ReadLineRange(Unknown Source)
                    at lotus.notes.apps.viewpanel.ViewPanel.refresh(Unknown Source)
                    at lotus.notes.apps.viewpanel.ViewPanel.refresh(Unknown Source)
                    at lotus.notes.apps.viewpanel.ViewPanel.deleteMarkedDocuments(Unknown Source)
                    at lotus.notes.apps.viewapplet.ViewApplet.deleteMarkedDocuments(Unknown Source)
                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                    at java.lang.reflect.Method.invoke(Unknown Source)
                    at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
                    at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                    at java.lang.reflect.Method.invoke(Unknown Source)
                    at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
                    at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
                    at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
                    at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source)
                    at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
                    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source)
                    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source)
                    at java.security.AccessController.doPrivileged(Native Method)
                    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source)
                    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source)
                    at java.lang.Thread.run(Unknown Source)
    

    At this point I'd been trying all kinds of other approaches to debugging this and had spent hours on it. I've never been so grateful to see an error.

    What I still didn't get was why the applet could load the view's content on the first page load - this was a major source of confusion.

    Why was there an "access control" issue only when it reloads the view!?

    After some searching and lots of reading (and lots of red herrings) I found out that since Java 6 reached "Update 22" a new security feature was implemented. The fix meant that any Java applet making a URL connection which was the result of being asked to do so by a JavaScript call had to do so with the same security settings/permissions as the JavaScript itself.

    That's when the applet goes all paranoid! In doing so it wants to rule out the chance it's the target of cross-domain security breach.

    But again, things are odd here. It's not cross domain. The applets are loaded from the same domain as the web page itself. As are the subsequent calls to the XML data via ?ReadViewEntries! Why does it think it's cross domain.

    The next step and the eureka moment was in working out how the applet decides if it's cross domain or not.

    It all comes down to whether or not a "reverse DNS lookups" of the resolved IP address points to the same domain name as shown in the address bar.

    To work this out you first need to ping the domain in use, like so:

    image

    The ping the resolved IP address directly while including the "-a" parameter (resolves addresses to hostnames), as below:

    image

    Et voila! A reverse DNS lookup for codestore.net points to something completely different! That is why the Java applet breaks!!

    To corroborate this I further tested in my own local network on my server called "dover" and resolvable in DNS both as dover and as dover.rockalldesign.com.

    I then tried using the applets at the following URLs:

    1. http://dover/apps/applets.nsf/view
    2. http://dover.rockalldesign.com/apps/applets.nsf/view

    The Refresh button worked on the first URL but not the second. Why? Consider the following:

    image2

    On my local network a Reverse DNS Lookup for "dover.rockalldesign.com" doesn't match the expected name of "dover", so the 2nd URL fails. But as you can infer from the above a reverse lookup for "dover" does returns a matching name, so the Java applet is happy to continue loading for the 1st URL.

    Solution

    The obvious solution would be to make sure you used a domain name in your URL with matches the one returned by a reverse lookup. In the actual customer's case this was a viable solution, as it is for my dover server. But not for the codestore.net version as the mcleodusa.net address it points back to can't be resolved in the address bar.

    The alternative (and probably the better) solution is to add a cross-domain.xml file at the root of the HTTP server, so it would be accessible at http://www.codestore.net/cross-domain.xml. The content of the file is simply:

    <?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
     <allow-access-from domain="*"/>
    </cross-domain-policy>
    

    This will let you access the database using any domain / host which points to the server.

    Summary

    My customer's response was "Jake, you're a genius!". Well, as much as I'd love to agree, I wouldn't go quite that far. All I am is a patient nerd with enough experience of computers to know how to second guess them. Some times with problems like this it's down to a simple combination of experience and gut instinct.

    The fact it's only going to affect users of the Domino View Java Applets made me wonder if it's even worth sharing this (who in their right mind still uses them?!). But then the fact I was asked and then paid to solve it in the first place means people obviously still must use them.

    Click here to post a response

    By clicking Submit, you agree to the developerWorks terms of use.

    The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

    All information submitted is secure.

    • Close [x]

    The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

    Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

    By clicking Submit, you agree to the developerWorks terms of use.

    All information submitted is secure.

    • Close [x]

    Lotus Sandbox archived

    The Lotus Sandbox was closed to all new submissions in 2007. Downloads of previous submissions were still available as an archived resource following that closure, but effective September 2010, downloads from the Lotus Sandbox are no longer available.

    If you need to contact us regarding the removal of the Lotus Sandbox, please use our feedback form.

    Resources for samples and templates

    If you are looking for samples and templates for use with Lotus products, please use these resources:

    • IBM Lotus and WebSphere Portal Business Solutions Catalog
      The IBM Lotus and WebSphere Portal Business Solutions Catalog on Lotus Greenhouse is a rich, Web 2.0 style catalog designed to dynamically deliver widgets, plug-ins, portlets, and sample applications across the entire Lotus and WebSphere Portal software portfolio.
    • OpenNTF.org
      OpenNTF is devoted to enabling groups of individuals all over the world to collaborate on IBM Lotus Notes/Domino applications and release them as open source, providing a framework for the community so that open source applications may be freely distributed, using widely accepted licensing terms, and increasing the quality and quantity of templates, applications and samples that are shared by the community.
    Help: Update or add to My dW interests

    What's this?

    This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

    And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

    View your My developerWorks profile

    Return from help

    Help: Remove from My dW interests

    What's this?

    Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

    View your My developerWorks profile

    Return from help

    Интенет эфир о Lotus Notes. Блоги и форумы

    1. Я добавил новую бесплатную программу - Mobile Master 7.9.14

    С помощью программы можно также создавать резервные копии данных, восстанавливать удаленную из телефона информацию, копировать или перемещать файлы и синхронизировать заметки и контакты с такими программными продуктами, как Outlook, Lotus Notes, The Bat, Eudora, Outlook Express, Google calendar, Palm Desktop, Novell Groupwise, iTunes.

    2. Ищу работу мужу, специальность - журналист. У кого есть вакансия ? :)

    nbsp;&nbsp; </span></span></span><span>Lotus notes</span></p> <p><b><span></span></b></p> <p>&nbsp;Заранее спасибо!</p>

    3. Выпуск рассылки "Бюллетень "Lotus Notes CodeStore" No 509 от 2012-05-04" от 04 ...

    Вышел новый выпуск рассылки "Бюллетень "Lotus Notes CodeStore" No 509 от 2012-05-04".

    4. Выпуск рассылки "Lotus Notes/Domino -- продукт и инструмент. Выпуск: 529" от 04 ...

    Lotus Notes Developer/Administrator 4 - TS/SCI with Poly * Lotus Notes System Administrator (Attn BGM) * Lotus Notes Developer/Admin * Lotus Notes Administrator * Lotus Notes System Administrator (Attn BGM) * Lotus Notes Developer/Admin * Lotus Notes Administrator * export lotus notes personal address book download ridxi1.typepad.com/blog/2012/05/e... * Надежный документооборот с обновленным Антивирусом Касперского 8.0 для Lotus Domino * Каталог программ IBM Lotus

    5. Файлы для ПК - Программы ПК - Для работы с телефонами - стр 2

    Есть синхронизация данных с Outlook, Lotus Notes, The Bat, Eudora, Outlook Express, Google calendar, Palm Desktop, Novell Groupwise, iTunes, и др., закачка музыки/картинок, работа с базами данных и телефонными книгами.
    Блиц-опрос
    Давай знакомиться. В каких отношениях с Lotus Notes?
    (голосование возможно только из письма рассылки)
  • Lotus Администратор
  • Lotus Программист
  • Lotus Пользователь
  • С Lotus Note не знаком
  • Хочу познакомиться с Lotus Notes/Domino
  • Источники знаний. Сайты с книгами


    "Красные книги" IBM

    Книги компании IBM по специализированным тематикам о Lotus Software. Основной язык - английский форматы pdf и html

    Книги компании "Интертраст"

    Для администраторов разработчиков и пользователей. Настройка и администрирование, разработка и программирование, пользование системой Lotus Notes
    Документация. YellowBook
    Оригинальная документация по продуктам Lotus Software. Язык англыйский. Форматы pdf html nsf
    IBM Пресс
    Книги от компании IBM. Книги и брошуры на заказ и на бесплатную скачку в формате pdf
    КУДИЦ-ПРЕСС
    Просмотр и заказ книг. Некоторые книги возможно скачать в формате pdf для свободно чтения и просмотра.
    Книги о Lotus Notes в Интернете
    Ссылки на книги и методички находящиеся в свободном пользовании. Ветки форумов обсуждения книг и материалов. Поисковый сервер по хелпам Lotus Notes книги от Google для свободного просмотра

    В избранное о Lotus Notes/Domino В подготовке выпуска использовались материалы и знания
    По вопросам спонсорства, публикации материалов, участия обращайтесь к ведущему рассылку LotusDomiNotes

    В избранное