Classes for Java and JNDI Providers (NJCL)---Clientless

1.0 What's New
1.1 Path File Names
2.0 Release Notes
2.1 Client DLL Programs
2.2 Novell Service Providers for JNDI
2.3 JFC and JDK Versions
3.0 Release Scope
3.1 Supported Platforms
3.2 Novell JVM for NetWare
3.3 Remote Session Manager
3.4 Java Cryptography Extension (JCE) 1.2.1
3.5 NDS Iterator Device
3.6 NJCL Directory Structure
4.0 Manual Configuration
4.1 Change CLASSPATH Environment Variable
4.2 Using the JNCPV2 DLL/NLM
5.0 Frequent Errors
5.1 JNCP Not Found in Shared Library Path
5.2 Unsatisfied Link Exception
6.0 Sample Code and Documentation
7.0 Performance Tips
8.0 Legal Notices


1.0 What's New

The resulting installed directory structure for NJCL-C changed slightly. Instead of the former c:\novell\java install directory, this component is now installed to the c:\novell\ndk\njclv2r directory.

To see what changed in the software, documentation, and sample code for previous releases, see the What's New Archive . To see the specific documentation changes that were made, see the Revision History.


1.1 Path File Names

This release of NJCL allows you pass paths in the two file name strings of Context.rename. Previous versions allowed you to pass only atomic file names without including any path information for the old and new file names.


2.0 Release Notes


2.1 Client DLL Programs

You do not need the client dll programs when using this RMI version of NJCL. If you want to run in non-RMI mode, you need to have the latest client dll programs installed. If they are not installed correctly, you will receive an error when loading jncpv2r.dll. For details on how to run in RMI or non-RMI mode, see the Remote Session Manager section in the documentation.

Note that client dll programs are no longer included with NJCL-Clientless. For more information on obtaining the correct programs, see the Frequent Errors section of this readme.


2.2 Novell Service Providers for JNDI

The Novell service providers for JNDI are located in subpackages of com.novell.service. They are organized by namespace, such as NW (NetWare), NDS (Novell Directory Services), and so forth. The provider classes reside in the njclv2.jar file.

Initial context factories for Novell JNDI providers are located in the appropriate namespace package. For the appropriate factory locations, see the Service Provider documentation. You can also see com.novell.utility.naming.Environment.

The JNDI 1.1 framework classes, released by JavaSoft, reside in jndi.jar.

The packages for JNDI are

  • javax.naming
  • javax.naming.directory

If you encounter problems compiling and get "Class Not Found" errors, check your classpath for the correct.jar files and then check your import statements.


2.3 JFC and JDK Versions

With all versions subsequent to the February 1999 NDK release, SWING 1.1.1 or Java Foundation Classes (JFC) from Sun Microsystems' Java Software Division is included. These new classes are incompatible with older versions of JFC and cause errors in applications that were compiled using the older code. In order to work around this issue, the old swing.jar file can be renamed and manually added to the classpath, which allows both newer and older applications to continue working properly.


3.0 Release Scope


3.1 Supported Platforms

This RMI version of NJCL supports the following three-tier solution:

  • Tier 1 uses RMI to access Novell's JNDI service providers. A Java application requires a JVM and TCP/IP (any JVM-TCP/IP enabled machine). A Java browser is an additional requirement for any applets.
  • Tier 2 requires any NetWare 5.x server running the clientless NJCL. The NetWare server acts as a bridge, translating RMI requests into NCP requests. Java applications and applets use RMI to communicate with NJCL.
  • Tier 3 is Novell's back-end services, which request and return NCP replies.

All installations require a 32-bit operating system that supports Windows 95 compatible long file names.

NJCL classes can access NetWare 3.x to NetWare 5.x servers.


3.2 Novell JVM for NetWare

The Novell JVM for NetWare is required to run NJCL on a NetWare server. For the most recent version of the JVM, see the NDK.


3.3 Remote Session Manager

The Session Manager has been enhanced to support the Remote Session Manager. For detailed information on this RMI enhancement, see the accompanying documentation.


3.4 Java Cryptography Extension (JCE) 1.2.1

JCE 1.2.1 is needed to encrypt passwords sent from the client to the RMI server. The JCE 1.2.1 zip file is included with this component but must be unzipped and made available on both the client and the server. For details, see the installation instructions in the JCE zip file.

Users of NJCL are not required to do anything with JCE, except make the jar files available to applications and grant permissions in a policy file. An example of a simple policy file that would not be used for production applications is

grant {permission java.security.AllPermission;};

Instructions and examples for more restrictive policy files are included in the JCE zip file.


3.5 NDS Iterator Device

The Iterator device for NDK v8 provides List and Search functionality with NdsIterator, which can deal with very large results sets (hundreds of thousands). It provides a way for creating a large virtual list on specific server that contains all the objects in any specified container that pass a search filter.


3.6 NJCL Directory Structure

The following directories are located under the sys:\java\nclv2 directory:

  • bin -- Native support for Windows 95/98, Windows NT/2000, and NLM.
  • lib -- njclv2 and JNDI jar files. Contains bytecode for all supported platforms, as well as additional jar files.
  • src -- Source for Novell JNDI providers and NJCL.


4.0 Manual Configuration


4.1 Change CLASSPATH Environment Variable

The install program can optionally update the CLASSPATH information automatically. However, if you do not choose the automatic update during installation, you can manually update the classpath variable by completing the following:

To use the JNDI and NJCL classes, modify your CLASSPATH variable to point to the jar files in the lib directory. For example, at the client console, enter

SET CLASSPATH=%CLASSPATH%;C:\NOVELL\JAVA\NJCLV2\LIB\JNDI.JAR; 
C:\NOVELL\JAVA\NJCLV2\LIB\NJCLV2.JAR;

To use the SWING, HELP, and JGL3.1.0 classes, modify your CLASSPATH variable to point to the jar files in the lib directory. For example, at the client console, enter

SET CLASSPATH=%CLASSPATH%;C:\NOVELL\JAVA\NJCLV2\LIB\SWING.JAR; 
C:\NOVELL\JAVA\NJCLV2\LIB\HELP.JAR;
C:\NOVELL\JAVA\LIB\JGL3.1.0.JAR;

NOTE:  The swing.jar file is required for the GUID popup that is used by the authentication process.


4.2 Using the JNCPV2 DLL/NLM

When running in RMI mode, NJCL classes do not call native methods. However, when running in non-RMI mode, the NJCL classes do call native methods. These methods are contained in jncpv2.dll or jncpv2.nlm, which are located in the bin directory. To use this dll or nlm file, place it in your windows\system or add the bin directory to your path. The setup program handles this setup step for you automatically if you choose.

Note that the same jncpv2.dll is used for Windows 95/98 and Windows NT/2000.


5.0 Frequent Errors


5.1 JNCP Not Found in Shared Library Path

Problem: I run one of the samples and get "JNCPV2R not found in shared library path" message.

Solution: This can happen for either of the following reasons:

  1. The jncp*.dll (or jncp*.nlm) files are not in the search path.
  2. The client DLL is out of synchronization with the jncpv2 dll file. Install the latest client from http://www.novell.com/download.


5.2 Unsatisfied Link Exception

Problem: I run one of the samples and get an UnsatisfiedLinkException error.

Solution: Check your CLASSPATH and ensure that you are using the proper njclv2.jar and jncpv2.nlm or jncpv2.dll pairs. Rerunning the install program will check this automatically.


6.0 Sample Code and Documentation

Sample code and documentation are also available for NJCL. Both can be viewed online or downloaded through the NDK browser interface (NDK home page). See http://developer.novell.com/ndk.

We've enabled Start menu documentation entries. After you have installed the documentation, use the "NDK Documents" entry on your Start menu to quickly locate and access NDK documentation.

The documentation for NJCL-C consists of html files and graphics files in several different directories.

To view the NJCL-C documentation, locate the index.htm file in the [install location]\novell\ndk\doc\njclc\njclcenu directory and open that file in your web browser. The default install location is C:\.

The Reference Guide (API) documentation is in the new v1.2 format. Each package has a description of the package contents.


7.0 Performance Tips

The list method returns names of bindings, whereas the lookup method returns detailed information for a binding. If you use lookup multiple times using the names returned by list, your application's performance will decrease. We recommend that you use lookup only when a user requests details on a specific binding.

If you desire more information on the bindings found while using list, the listbindings method gives you better performance.


8.0 Legal Notices

Novell, Inc. makes no representations or warranties with respect to the contents or use of this download, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to revise this publication and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes.

Further, Novell, Inc. makes no representations or warranties with respect to any software, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to make changes to any and all parts of Novell software, at any time, without any obligation to notify any person or entity of such changes.

You may not use, export, or re-export this product in violation of any applicable laws or regulations including, without limitation, U.S. export regulations or the laws of the country in which you reside.

All files provided in this release are subject to the Novell Developer License Agreement, which can be found in the license.txt file provided in this download.

Copyright © 1999-2005 Novell, Inc. All rights reserved. No part of this publication may be reproduced, photocopied, stored on a retrieval system, or transmitted without the express written consent of the publisher.

Novell and NetWare are registered trademarks of Novell, Inc. in the United States and other countries.

All third-party products are the property of their respective owners.