JBoss.orgCommunity Documentation

Chapter 5. jUDDI Server Configuration (juddiv3.xml)

Table of Contents

5.1. Authentication
5.2. Startup
5.3. Email
5.4. Query Properties
5.5. RMI Proxy
5.6. Key Generation and Cryptography
5.7. Subscription
5.8. Custody Transfer
5.9. Validation
5.10. Deploying two or more jUDDI server on the same application server
5.11. jUDDI GUI Configuration
5.12. jUDDI Client uddi.xml Settings
5.13. Encryption Keys
5.14. Customizing the juddi-gui

jUDDI will look for a juddiv3.xml file on the root of the classpath. In the juddiv3.war you can find it in juddiv3.war/WEB_INF/classes/juddiv3.xml.

Since 3.2 the jUDDI server now uses an XML file for configuration. Previous versions uses a properties file.

Important

When referring to configuration properties, we are really referencing the XPath to specified setting.


Table 5.2. Startup properties that can be referenced in the juddiv3.xml file

Property NameDescriptionRequiredDefault Value or [Example Value]

juddi/server/baseurl

Token that can be accessed in accessPointURLs and resolved at runtime. Currently this is only used during the Installation process (seeding root data)

N

http://localhost:8080

juddi/root/publisher

The username for the jUDDI root publisher. This is usually just set to "root".

N

root

juddi/seed/always

Forces seeding of the jUDDI data. This will re-apply all files with the exception of the root data files. Note that this can lead to losing data that was added to the entities that are re-seeded, since data is not merged.

N

false

juddi/server/name

This token is referenced in the install data. Note that you can use any tokens, and that their values can be set here or as system parameters..

N

false

juddi/server/port

This token is referenced in the install data. Note that you can use any tokens, and that their values can be set here or as system parameters..

N

false

juddi/nodeId

The Node ID uniquely identifies this server. Use caution when changing the Node ID after jUDDI has been started, you may not be able to edit any existing entities! ..

N

uddi:juddi.apache.org:node1

juddi//load/install/data

This property allows you to cancel loading of the jUDDI install data.

N

false

juddi/locale

The default local to use. This currently is not used.

N

en_US

juddi/operatorEmailAddress

The UDDI Operator Contact Email Address. This currently is not used.

N

admin@juddi.org

juddi/persistenceunit.name

The persistence name for the jUDDI database that is specified in the persistence.xml file.

N

juddiDatabase

juddi/configuration/reload/delay

The time in milliseconds in which juddiv3.xmlis polled for changes.

N

5000


Caution

Take caution in changing the jUDDI Node ID. If jUDDI has already been started at least once and the Node ID is changed, an existing records will not be editable. If you want to change from the default value, do so before you first start jUDDI by editing the configuration file.

Table 5.3. As of 3.1.5, jUDDI supports Email delivery options for Subscription API functions. Email properties can be referenced in the juddiv3.xml file

Property NameDescriptionRequiredDefault Value or [Example Value]

juddi/mail/smtp/from

The Operator’s Email address

Y

[jUDDI@example.org]

juddi/mail/smtp/host

The hostname of the SMTP server

Y

[localhost]

juddi/mail/smtp/port

The portname of the SMTP server

Y

[25]

juddi/mail/smtp/socketFactory.class

If set, specifies the name of a class that implements the javax.net.SocketFactory interface. This class will be used to create SMTP sockets.

N

 

juddi/mail/smtp/socketFactory/fallback

If set to true, failure to create a socket using the specified socket factory class will cause the socket to be created using the java.net.Socket class. Defaults to true.

N

true

juddi/mail/smtp/starttls/enable

f true, enables the use of the STARTTLS command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. Note that an appropriate trust store must configured so that the client will trust the server’s certificate. Defaults to false.

N

false

juddi/mail/smtp/socketFactory/port

Specifies the port to connect to when using the specified socket factory. If not set, the default port will be used.

N

[465]

juddi/mail/smtp/auth

If true, attempt to authenticate the user using the AUTH command. Defaults to false.

N

[false]

juddi/mail/smtp/user

Username used to authenticate to the SMTP server

Y, if juddi/mail/smtp/auth is true

[juddi@apache.org]

juddi/mail/smtp/password

Username used to authenticate to the SMTP server

Y, if juddi/mail/smtp/auth is true

[secret]

juddi/mail/smtp/password@encrypted

If the password is encrypted, the setting juddi/cryptor is the Cryptographic provider used to decrypt at runtime.

Y, if juddi/mail/smtp/auth is true

false


Table 5.4. Query properties that can be referenced in the juddiv3.xml file

Property NameDescriptionRequiredDefault Value or [Example Value]

juddi/maxBusinessesPerPublisher

The maximum number of UDDI Businesses that can be registered per publisher. A value of -1 indicates any number of businesses is allowed (These values can be overridden at the individual publisher level)

N

-1

juddi/maxServicesPerBusiness

The maximum number of UDDI BusinessServices allowed per Business. A value of -1 indicates any number of artifacts is valid (These values can be # overridden at the individual publisher level).

N

-1

juddi/maxBindingsPerService

The maximum number of UDDI TemplateBindings allowed per BusinessService. A value of -1 indicates any number of artifacts is valid (These values can be overridden at the individual publisher level).

N

-1

juddi/maxTModelsPerPublisher

The maximum number of TModels allowed per publisher. A value of -1 indicates any number of artifacts is valid (These values can be overridden at the individual publisher level).

N

-1

juddi/maxInClause

The maximum number of "IN" clause parameters. Some RDMBS limit the number of parameters allowed in a SQL "IN" clause.

Y

[1000]

juddi/maxNameElementsAllowed

The maximum name size and maximum number of name elements allows in several of the FindXxxx and SaveXxxx UDDI functions

N

[5]

juddi/maxNameLength

The maximum name size of name elements

N

[255]

juddi/maxRows

The maximum number of rows returned in a find_* operation. Each call can set this independently, but this property defines a global maximum. This is related to the maxInClause setting (the same?).

N

1000


These properties are used to bring up RMI server socket. The settings allow for registering this service to JNDI.  RMI Proxy properties that can be referenced in the juddiv3.xml file and is only used by RMITransport.

Property NameDescriptionRequiredDefault Value or [Example Value]

juddi/proxy/factory/initial

JNDI Contect Facory

N

[org.jnp.interfaces.NamingContextFactory]

juddi/proxy/provider/url

JNDI Provider Address

N

[jnp://localhost:1099]

juddi/proxy/factory/url/pkg

JNDI Naming Convention

N

[org.jboss.naming]





It is possible to deploy one or more jUDDI servers to the same application server. You will need copy the juddiv3.war archive (let’s say you copied it to juddiv3a.war), and change the following settings to have it connect to a different database:

  1. edit the juddiv3a/META-INF/context.xml (and conf/Catalina/localhost/juddiv3a.xml) to use the jdbc/JuddiADS datasource, and add a to the url: url="jdbc:derby:target/juddi-derby-test-db-v3a;create=true"
  2. edit the juddiv3a/WEB-INF/classes/META-INF/persistence.xml to use <non-jta-data-source>java:comp/env/jdbc/JuddiADS and persistence-unit name="juddiADatabase"
  3. edit the juddiv3a/WEB-INF/classes/juddiv3.xml to have <persistenceunit><name>juddiADatabase</name></persistenceunit>

This will create a new jUDDI server under the http://localhost:8080/juddiv3a url which connects to the juddi-derby-test-db-v3a Derby database.

The jUDDI GUI (juddi-gui.war) has one place for configuration settings, the jUDDI Client config file.

Defined in WEB-INF/classes/META-INF/uddi.xml, there are many settings to configure. All of these are clearly defined by the jUDDI Client Configuration Guide. The juddi-gui, uses things a bit differently, so here are the relevant parts to use. Note: this is xpath notation.

  • uddi/client/nodes/properties, not used
  • uddi/client/clerks, not used
  • uddi/client/nodes/node, all URLs except juddiApiUrl (not used)
  • uddi/client/signature, all validation related settings
  • uddi/client/subscriptionCallbacks, not used
  • uddi/client/XtoWsdl, not used

In addition, there a special section added just for the juddi-gui.war


By default, the juddi-gui will use a randomly generated AES encryption key to help protect user credentials stored in the session object. This key is generated using the "StartupServlet" defined in the web.xml file of juddi-gui.war/WEB-INF/web.xml and then it is stored at the path juddi-gui.war/META-INF/config.properties@key.

If the start up servlet fails to start, any authenticate operation of the juddi-gui will fail.

Important

The user account that the container for juddi-gui runs as must have write access to the file juddi-gui.war/META-INF/config.properties.

The juddi-gui has a mechanism that you can use to alter the appearance of every page. This is typically used for organizations that require legal notifications, banners or warnings on every page for one reason or another. To add your own html to every page, edit the file in

juddi-gui/user/banner.jsp