/***** Code de MesExemples.com *******/
/* * Copyright 2007 Sun Microsystems, Inc. * All rights reserved. You may not modify, use, * reproduce, or distribute this software except in * compliance with the terms of the License at: * http://developer.sun.com/berkeley_license.html *//*Copyright 1994-2006 Sun Microsystems, Inc. All Rights Reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclaimer.* Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided "AS IS," without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility. */import javax.xml.registry.Connection;import javax.xml.registry.ConnectionFactory;import javax.xml.registry.RegistryService;import javax.xml.registry.BusinessLifeCycleManager;import javax.xml.registry.LifeCycleManager;import javax.xml.registry.BusinessQueryManager;import javax.xml.registry.BulkResponse;import javax.xml.registry.JAXRException;import javax.xml.registry.infomodel.Organization;import javax.xml.registry.infomodel.InternationalString;import javax.xml.registry.infomodel.PostalAddress;import javax.xml.registry.infomodel.TelephoneNumber;import javax.xml.registry.infomodel.User;import javax.xml.registry.infomodel.PersonName;import javax.xml.registry.infomodel.EmailAddress;import javax.xml.registry.infomodel.ClassificationScheme;import javax.xml.registry.infomodel.Classification;import javax.xml.registry.infomodel.Service;import javax.xml.registry.infomodel.ServiceBinding;import javax.xml.registry.infomodel.Key;import java.net.URL;import java.net.PasswordAuthentication;import java.util.ResourceBundle;import java.util.Properties;import java.util.HashSet;import java.util.Collection;import java.util.ArrayList;/** * The JAXRPublish class consists of a main method, a * makeConnection method, and an executePublish method. * It creates an organization and publishes it to a registry. */public class JAXRPublish { Connection connection = null; public JAXRPublish() { } public static void main(String[] args) { ResourceBundle bundle = ResourceBundle.getBundle("JAXRExamples"); String queryURL = bundle.getString("query.url"); String publishURL = bundle.getString("publish.url"); String username = bundle.getString("registry.username"); String password = bundle.getString("registry.password"); JAXRPublish jp = new JAXRPublish(); jp.makeConnection(queryURL, publishURL); jp.executePublish(username, password); } /** * Establishes a connection to a registry. * * @param queryUrl the URL of the query registry * @param publishUrl the URL of the publish registry */ public void makeConnection( String queryUrl, String publishUrl) { /* * Specify proxy information in case you * are going beyond your firewall. */ ResourceBundle bundle = ResourceBundle.getBundle("JAXRExamples"); String httpProxyHost = bundle.getString("http.proxyHost"); String httpProxyPort = bundle.getString("http.proxyPort"); String httpsProxyHost = bundle.getString("https.proxyHost"); String httpsProxyPort = bundle.getString("https.proxyPort"); /* * Define connection configuration properties. * To publish, you need both the query URL and the * publish URL. */ Properties props = new Properties(); props.setProperty("javax.xml.registry.queryManagerURL", queryUrl); props.setProperty("javax.xml.registry.lifeCycleManagerURL", publishUrl); props.setProperty("com.sun.xml.registry.http.proxyHost", httpProxyHost); props.setProperty("com.sun.xml.registry.http.proxyPort", httpProxyPort); props.setProperty( "com.sun.xml.registry.https.proxyHost", httpsProxyHost); props.setProperty( "com.sun.xml.registry.https.proxyPort", httpsProxyPort); try { // Create the connection, passing it the // configuration properties ConnectionFactory factory = ConnectionFactory.newInstance(); factory.setProperties(props); connection = factory.createConnection(); System.out.println("Created connection to registry"); } catch (Exception e) { e.printStackTrace(); if (connection != null) { try { connection.close(); } catch (JAXRException je) { } } } } /** * Creates an organization, its classification, and its * services, and saves it to the registry. * * @param username the username for the registry * @param password the password for the registry */ public void executePublish( String username, String password) { RegistryService rs = null; BusinessLifeCycleManager blcm = null; BusinessQueryManager bqm = null; try { rs = connection.getRegistryService(); blcm = rs.getBusinessLifeCycleManager(); bqm = rs.getBusinessQueryManager(); System.out.println( "Got registry service, query " + "manager, and life cycle manager"); // Get authorization from the registry PasswordAuthentication passwdAuth = new PasswordAuthentication( username, password.toCharArray()); HashSet creds = new HashSet(); creds.add(passwdAuth); connection.setCredentials(creds); System.out.println("Established security credentials"); ResourceBundle bundle = ResourceBundle.getBundle("JAXRExamples"); // Create organization name and description InternationalString s = blcm.createInternationalString( bundle.getString("org.name")); Organization org = blcm.createOrganization(s); s = blcm.createInternationalString( bundle.getString("org.description")); org.setDescription(s); // Create primary contact, set name User primaryContact = blcm.createUser(); PersonName pName = blcm.createPersonName( bundle.getString("person.name")); primaryContact.setPersonName(pName); // Set primary contact phone number TelephoneNumber tNum = blcm.createTelephoneNumber(); tNum.setNumber(bundle.getString("phone.number")); Collection phoneNums = new ArrayList(); phoneNums.add(tNum); primaryContact.setTelephoneNumbers(phoneNums); // Set primary contact email address EmailAddress emailAddress = blcm.createEmailAddress( bundle.getString("email.address")); Collection emailAddresses = new ArrayList(); emailAddresses.add(emailAddress); primaryContact.setEmailAddresses(emailAddresses); // Set primary contact for organization org.setPrimaryContact(primaryContact); // Set classification scheme to NAICS, using // well-known UUID of ntis-gov:naics:1997 String uuid_naics = "uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2"; ClassificationScheme cScheme = (ClassificationScheme) bqm .getRegistryObject( uuid_naics, LifeCycleManager.CLASSIFICATION_SCHEME); if (cScheme != null) { // Create and add classification InternationalString sn = blcm.createInternationalString( bundle.getString("classification.name")); Classification classification = blcm.createClassification( cScheme, sn, bundle.getString("classification.value")); Collection classifications = new ArrayList(); classifications.add(classification); org.addClassifications(classifications); } else { System.out.println( "Classification scheme not found, " + "not classifying organization"); } // Create services and service Collection services = new ArrayList(); s = blcm.createInternationalString( bundle.getString("service.name")); Service service = blcm.createService(s); s = blcm.createInternationalString( bundle.getString("service.description")); service.setDescription(s); // Create service bindings Collection serviceBindings = new ArrayList(); ServiceBinding binding = blcm.createServiceBinding(); s = blcm.createInternationalString( bundle.getString("svcbinding.description")); binding.setDescription(s); // Allow us to publish a fictitious URI without an error binding.setValidateURI(false); binding.setAccessURI(bundle.getString("svcbinding.accessURI")); serviceBindings.add(binding); // Add service bindings to service service.addServiceBindings(serviceBindings); // Add service to services, then add services to organization services.add(service); org.addServices(services); // Add organization and submit to registry // Retrieve key if successful Collection orgs = new ArrayList(); orgs.add(org); BulkResponse response = blcm.saveOrganizations(orgs); Collection exceptions = response.getExceptions(); if (exceptions == null) { System.out.println("Organization saved"); Collection keys = response.getCollection(); for (Object k : keys) { Key orgKey = (Key) k; String id = orgKey.getId(); System.out.println("Organization key is " + id); } } else { for (Object e : exceptions) { Exception exception = (Exception) e; System.err.println( "Exception on save: " + exception.toString()); } } } catch (Exception e) { e.printStackTrace(); } finally { // At end, close connection to registry if (connection != null) { try { connection.close(); } catch (JAXRException je) { } } } }}////////////////////////////////// File: JAXRExamples.properties////////////////////////////////## Registry Server:query.url=http://localhost:8080/RegistryServer/publish.url=http://localhost:8080/RegistryServer/registry.username=testuserregistry.password=testuser## HTTP and HTTPS proxy host and porthttp.proxyHost=http.proxyPort=8080https.proxyHost=https.proxyPort=8080## Values used by publish examplesorg.name=The Coffee Breakorg.description=Purveyor of the finest coffees. Established 1950person.name=Jane Doephone.number=(800) 555-1212email.address=jane.doe@TheCoffeeBreak.comclassification.scheme=ntis-gov:naics:1997classification.name=All Other Specialty Food Storesclassification.value=445299service.name=My Service Nameservice.description=My Service Descriptionsvcbinding.description=My Service Binding Descriptionsvcbinding.accessURI=http://TheCoffeeBreak.com:8080/sb/## Values used by postal address examplespostal.taxonomy.filenames=postalconcepts.xmlpostal.scheme.name=MyPostalAddressSchemepostal.scheme.description=A ClassificationScheme for My PostalAddressMappingspostal.classification.name=postalAddresspostal.classification.value=postalAddresspostal.scheme.link=http://unrealcompany.com/PostalScheme.htmlpostal.scheme.linkdesc=My PostalAddress Schemepostal.org.name=The Postal Coffee Breakpostal.person.name=Jane Postalpostal.email.address=jane.postal@ThePostalCoffeeBreak.compostal.streetNumber=99postal.street=Imaginary Ave. Suite 33postal.city=Imaginary Citypostal.state=NYpostal.country=USApostal.postalCode=00000postal.type=# Values used by JAXRPublishConcept exampleconcept.name=HelloConceptconcept.description=Concept for Hello Servicelink.uri=http://localhost:8080/hello-jaxws/hello?WSDLlink.description=Hello WSDL document# Values used by JAXRPublishHelloOrg examplewsdlorg.name=Hello Organizationwsdlorg.description=Organization with a Hello Servicewsdlorg.person.name=Dukewsdlorg.person.description=Owner of Hello Servicewsdlorg.phone=111-222-3333wsdlorg.email.address=duke@hello.comwsdlorg.svc.name=JAX-RPC Hello Servicewsdlorg.svc.description=Says Hellowsdlorg.svcbnd.description=Service binding for Hello Servicewsdlorg.svcbnd.uri=http://localhost:8080/hello-jaxws/hello
Code testé avec le fichier XML Suivant
Sakoba
Adams
Rappel
Ne m'oubliez pas ce week-end!