Example usage for javax.xml.ws WebServiceException getMessage

List of usage examples for javax.xml.ws WebServiceException getMessage

Introduction

In this page you can find the example usage for javax.xml.ws WebServiceException getMessage.

Prototype

public String getMessage() 

Source Link

Document

Returns the detail message string of this throwable.

Usage

From source file:org.pentaho.di.repository.pur.PurRepositoryConnector.java

public synchronized RepositoryConnectResult connect(final String username, final String password)
        throws KettleException, KettleSecurityException {
    if (serviceManager != null) {
        disconnect();//from w w w  .  jav a  2 s .  co  m
    }
    serviceManager = new WebServiceManager(repositoryMeta.getRepositoryLocation().getUrl(), username);
    RepositoryServiceRegistry purRepositoryServiceRegistry = new RepositoryServiceRegistry();
    IUser user1 = new EEUserInfo();
    final String decryptedPassword = Encr.decryptPasswordOptionallyEncrypted(password);
    final RepositoryConnectResult result = new RepositoryConnectResult(purRepositoryServiceRegistry);
    try {
        /*
         * Three scenarios: 1. Connect in process: username fetched using PentahoSessionHolder; no authentication occurs
         * 2. Connect externally with trust: username specified is assumed authenticated if IP of calling code is trusted
         * 3. Connect externally: authentication occurs normally (i.e. password is checked)
         */
        user1.setLogin(username);
        user1.setPassword(decryptedPassword);
        user1.setName(username);
        result.setUser(user1);

        // We need to have the application context and the session available in order for us to skip authentication
        if (PentahoSystem.getApplicationContext() != null && PentahoSessionHolder.getSession() != null
                && PentahoSessionHolder.getSession().isAuthenticated()) {
            if (inProcess()) {
                // connect to the IUnifiedRepository through PentahoSystem
                // this assumes we're running in a BI Platform
                result.setUnifiedRepository(PentahoSystem.get(IUnifiedRepository.class));
                if (result.getUnifiedRepository() != null) {
                    if (log.isDebug()) {
                        log.logDebug("begin connectInProcess()");
                    }
                    String name = PentahoSessionHolder.getSession().getName();
                    user1 = new EEUserInfo();
                    user1.setLogin(name);
                    user1.setName(name);
                    user1.setPassword(decryptedPassword);
                    result.setUser(user1);
                    result.setSuccess(true);

                    if (log.isDebug()) {
                        log.logDebug("connected in process as '" + name + "' pur repository = "
                                + result.getUnifiedRepository());
                    }

                    // for now, there is no need to support the security manager
                    // what about security provider?
                    return result;
                }
            }
        }

        ExecutorService executor = ExecutorUtil.getExecutor();

        Future<Boolean> authorizationWebserviceFuture = executor.submit(new Callable<Boolean>() {

            @Override
            public Boolean call() throws Exception {
                // We need to add the service class in the list in the order of dependencies
                // IRoleSupportSecurityManager depends RepositorySecurityManager to be present
                if (log.isBasic()) {
                    log.logBasic(
                            BaseMessages.getString(PKG, "PurRepositoryConnector.CreateServiceProvider.Start"));
                }
                result.setSecurityProvider(new AbsSecurityProvider(purRepository, repositoryMeta,
                        result.getUser(), serviceManager));
                if (log.isBasic()) {
                    log.logBasic(
                            BaseMessages.getString(PKG, "PurRepositoryConnector.CreateServiceProvider.End")); //$NON-NLS-1$
                }

                // If the user does not have access to administer security we do not
                // need to added them to the service list
                if (allowedActionsContains((AbsSecurityProvider) result.getSecurityProvider(),
                        IAbsSecurityProvider.ADMINISTER_SECURITY_ACTION)) {
                    result.setSecurityManager(new AbsSecurityManager(purRepository, repositoryMeta,
                            result.getUser(), serviceManager));
                    // Set the reference of the security manager to security provider for user role list change event
                    ((PurRepositorySecurityProvider) result.getSecurityProvider()).setUserRoleDelegate(
                            ((PurRepositorySecurityManager) result.getSecurityManager()).getUserRoleDelegate());
                    return true;
                }
                return false;
            }
        });

        Future<WebServiceException> repoWebServiceFuture = executor.submit(new Callable<WebServiceException>() {

            @Override
            public WebServiceException call() throws Exception {
                try {
                    IUnifiedRepositoryJaxwsWebService repoWebService = null;
                    if (log.isBasic()) {
                        log.logBasic(BaseMessages.getString(PKG,
                                "PurRepositoryConnector.CreateRepositoryWebService.Start")); //$NON-NLS-1$
                    }
                    repoWebService = serviceManager.createService(username, decryptedPassword,
                            IUnifiedRepositoryJaxwsWebService.class); //$NON-NLS-1$
                    if (log.isBasic()) {
                        log.logBasic(BaseMessages.getString(PKG,
                                "PurRepositoryConnector.CreateRepositoryWebService.End")); //$NON-NLS-1$
                    }
                    if (log.isBasic()) {
                        log.logBasic(BaseMessages.getString(PKG,
                                "PurRepositoryConnector.CreateUnifiedRepositoryToWebServiceAdapter.Start")); //$NON-NLS-1$
                    }
                    result.setUnifiedRepository(new UnifiedRepositoryToWebServiceAdapter(repoWebService));
                } catch (WebServiceException wse) {
                    return wse;
                }
                return null;
            }
        });

        Future<Exception> syncWebserviceFuture = executor.submit(new Callable<Exception>() {

            @Override
            public Exception call() throws Exception {
                try {
                    if (log.isBasic()) {
                        log.logBasic(BaseMessages.getString(PKG,
                                "PurRepositoryConnector.CreateRepositorySyncWebService.Start"));
                    }
                    IRepositorySyncWebService syncWebService = serviceManager.createService(username,
                            decryptedPassword, IRepositorySyncWebService.class); //$NON-NLS-1$
                    if (log.isBasic()) {
                        log.logBasic(BaseMessages.getString(PKG,
                                "PurRepositoryConnector.CreateRepositorySyncWebService.Sync")); //$NON-NLS-1$
                    }
                    syncWebService.sync(repositoryMeta.getName(),
                            repositoryMeta.getRepositoryLocation().getUrl());
                } catch (RepositorySyncException e) {
                    log.logError(e.getMessage(), e);
                    // this message will be presented to the user in spoon
                    result.setConnectMessage(e.getMessage());
                    return null;
                } catch (ClientTransportException e) {
                    // caused by authentication errors, etc
                    return e;
                } catch (WebServiceException e) {
                    // if we can speak to the repository okay but not the sync service, assume we're talking to a BA Server
                    log.logError(e.getMessage(), e);
                    return new Exception(BaseMessages.getString(PKG, "PurRepository.BAServerLogin.Message"), e);
                }
                return null;
            }
        });

        WebServiceException repoException = repoWebServiceFuture.get();
        if (repoException != null) {
            log.logError(repoException.getMessage());
            throw new Exception(BaseMessages.getString(PKG, "PurRepository.FailedLogin.Message"),
                    repoException);
        }

        Exception syncException = syncWebserviceFuture.get();
        if (syncException != null) {
            throw syncException;
        }

        Boolean isAdmin = authorizationWebserviceFuture.get();

        if (log.isBasic()) {
            log.logBasic(BaseMessages.getString(PKG, "PurRepositoryConnector.RegisterSecurityProvider.Start"));
        }
        purRepositoryServiceRegistry.registerService(RepositorySecurityProvider.class,
                result.getSecurityProvider());
        purRepositoryServiceRegistry.registerService(IAbsSecurityProvider.class, result.getSecurityProvider());
        if (isAdmin) {
            purRepositoryServiceRegistry.registerService(RepositorySecurityManager.class,
                    result.getSecurityManager());
            purRepositoryServiceRegistry.registerService(IRoleSupportSecurityManager.class,
                    result.getSecurityManager());
            purRepositoryServiceRegistry.registerService(IAbsSecurityManager.class,
                    result.getSecurityManager());
        }

        purRepositoryServiceRegistry.registerService(
                PurRepositoryRestService.PurRepositoryPluginApiRevision.class,
                serviceManager.createService(username, decryptedPassword,
                        PurRepositoryRestService.PurRepositoryPluginApiRevision.class));

        purRepositoryServiceRegistry.registerService(IRevisionService.class,
                new UnifiedRepositoryRevisionService(result.getUnifiedRepository(), rootRef));
        purRepositoryServiceRegistry.registerService(IAclService.class,
                new UnifiedRepositoryConnectionAclService(result.getUnifiedRepository()));
        purRepositoryServiceRegistry.registerService(IConnectionAclService.class,
                new UnifiedRepositoryConnectionAclService(result.getUnifiedRepository()));
        purRepositoryServiceRegistry.registerService(ITrashService.class,
                new UnifiedRepositoryTrashService(result.getUnifiedRepository(), rootRef));
        purRepositoryServiceRegistry.registerService(ILockService.class,
                new UnifiedRepositoryLockService(result.getUnifiedRepository()));

        if (log.isBasic()) {
            log.logBasic(
                    BaseMessages.getString(PKG, "PurRepositoryConnector.RepositoryServicesRegistered.End"));
        }

        result.setSuccess(true);
    } catch (NullPointerException npe) {
        result.setSuccess(false);
        throw new KettleException(BaseMessages.getString(PKG, "PurRepository.LoginException.Message"));
    } catch (Throwable e) {
        result.setSuccess(false);
        serviceManager.close();
        throw new KettleException(e);
    }
    return result;
}

From source file:org.talend.mdm.repository.ui.editors.MDMServiceConfigrationMainPage.java

@Override
protected void setForConfigureContent(String serviceName) {

    try {/*w  w  w .  j  a  v  a  2s  .  c  o  m*/
        if (serviceName != null && !"".equals(serviceName)) {//$NON-NLS-1$
            document = getServiceDocument(serviceName.trim());

            XObjectEditorInput2 editorInput = (XObjectEditorInput2) getEditorInput();

            MDMServerObjectItem serverObjectItem = (MDMServerObjectItem) editorInput.getInputItem();
            MDMServerObject serverObject = serverObjectItem.getMDMServerObject();

            String configContent = null;
            if (serverObject instanceof WSServiceConfigurationE) {
                WSServiceConfigurationE object = (WSServiceConfigurationE) serverObject;
                for (WSServicePutConfigurationE config : object.getServicePutConfigurations()) {
                    if (config.getJndiName().equals(serviceName.trim())) {
                        configContent = config.getConfiguration();
                    }

                }

            }
            serviceConfigurationsText.setText(configContent);
            errorLabel.setText("");//$NON-NLS-1$
        }
    } catch (WebServiceException e1) {
        log.error(e1.getMessage(), e1);
    }

}

From source file:org.talend.mdm.repository.ui.editors.MDMServiceConfigrationMainPage.java

@Override
protected String getDoc() {

    WSServiceGetDocument document = null;
    try {/*from  ww  w  .ja  va  2  s . com*/
        document = getServiceDocument(serviceNameCombo.getText().trim());
    } catch (WebServiceException e) {
        log.error(e.getMessage(), e);
    }

    String doc = document.getDocument();
    return doc;

}

From source file:org.talend.mdm.repository.ui.editors.MDMServiceConfigrationMainPage.java

@Override
protected String getDesc() {

    WSServiceGetDocument document = null;
    try {//from  ww  w.ja  va2s .c om
        document = getServiceDocument(serviceNameCombo.getText().trim());
    } catch (WebServiceException e) {
        log.error(e.getMessage(), e);
    }
    String desc = document.getDescription();
    return desc;

}

From source file:org.talend.mdm.repository.ui.widgets.RepositoryViewObjectCheckedWidget.java

private synchronized ConsistencyData getConsistencyData(MDMServerDef serverDef, IRepositoryViewObject viewObj) {
    if (!isServerOk) {
        return null;
    }//from   www  .j  a va  2 s.  c o m
    ConsistencyData consistencyData = consistencyMap.get(viewObj);
    if (consistencyData != null) {
        return consistencyData;
    }
    try {
        ConsistencyService consistencyService = ConsistencyService.getInstance();

        consistencyData = new ConsistencyData();

        ERepositoryObjectType viewType = viewObj.getRepositoryObjectType();
        if (viewType == null) {
            return null;
        }
        if (viewType == IServerObjectRepositoryType.TYPE_RESOURCE
                || viewType == IServerObjectRepositoryType.TYPE_JOB
                || viewType == IServerObjectRepositoryType.TYPE_WORKFLOW) {

            consistencyData.setCompareResult(CompareResultEnum.NOT_SUPPORT);
        } else {
            List<IRepositoryViewObject> viewObjs = new ArrayList<IRepositoryViewObject>();
            viewObjs.add(viewObj);
            Map<IRepositoryViewObject, WSDigest> digestValueResult = consistencyService
                    .queryServerDigestValue(serverDef, viewObjs);
            WSDigest serverDigestTime = digestValueResult.get(viewObj);
            consistencyData.setServerDigestTime(serverDigestTime);
            consistencyService.updateCurrentDigestValue(viewObj);
            Item item = viewObj.getProperty().getItem();
            String ld = consistencyService.getLocalDigestValue(item);
            String cd = consistencyService.getCurrentDigestValue(item);
            long localTimestamp = consistencyService.getLocalTimestamp(item);
            // key
            String type = viewObj.getRepositoryObjectType().getKey();
            String objectName = viewObj.getLabel();
            WSDigestKey key = new WSDigestKey(objectName, type);
            consistencyData.setLocalDigestTime(new WSDigest(ld, localTimestamp, key));

            // init compare result;
            CompareResultEnum result;
            if (serverDigestTime == null || serverDigestTime.getDigestValue() == null) {
                result = CompareResultEnum.NOT_EXIST_IN_SERVER;
            } else {
                String rd = serverDigestTime.getDigestValue();
                result = consistencyService.getCompareResult(cd, ld, rd);
            }
            consistencyData.setCompareResult(result);

        }
        consistencyMap.put(viewObj, consistencyData);
    } catch (WebServiceException e) {
        log.error(e.getMessage(), e);
    } catch (XtentisException e) {
        log.error(e.getMessage(), e);
    }
    return consistencyData;
}