元件和服務Java API快速入門(SOAP) components-and-services-java-apiquick-start-soap
元件和服務均可使用Java API快速入門(SOAP)。
快速入門(SOAP模式):使用Java API設定服務的執行內容
快速入門(SOAP模式):使用Java API停用服務安全性
快速入門(SOAP模式):使用Java API修改服務配置值
AEM Forms操作可使用AEM Forms強制類型API來執行,且連線模式應設為SOAP。
NOTE
您無法使用Web服務以程式設計方式操控元件和服務。
NOTE
使用AEM表單進行程式設計中的快速入門是以部署在JBoss和Windows作業系統上的Forms伺服器為基礎。 但是,如果您使用其他作業系統(如Unix),請以適用作業系統支援的路徑取代windows特定路徑。 同樣,如果您正在使用其他J2EE應用程式伺服器,請確保指定有效的連接屬性。 請參閱 設定連接屬性.
NOTE
如果您有自訂元件,並且使用SOAP或EJB協定來調用同一本地伺服器上的DSC,並且這些調用在升級後停止工作,則使用in-VM(DSC_IN_VM_PASSTHROUGH_STRATEGY)調用策略。 使用預設的ServiceClientFactory的VM內DSC調用方法,並且不使用SOAP或EJB協定構建ServiceClientFactory。
快速入門(SOAP模式):使用Java API部署元件 quick-start-soap-mode-deploying-a-component-using-the-java-api
以下Java示例部署了基於名為的JAR檔案的元件 adobe-emailSample-dsc.jar.
/*
* This Java Quick Start uses the following JAR files
* 1. adobe-taskmanager-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. activation.jar (required for SOAP mode)
* 5. axis.jar (required for SOAP mode)
* 6. commons-codec-1.3.jar (required for SOAP mode)
* 7. commons-collections-3.2.jar (required for SOAP mode)
* 8. commons-discovery.jar (required for SOAP mode)
* 9. commons-logging.jar (required for SOAP mode)
* 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 11. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 12. jaxrpc.jar (required for SOAP mode)
* 13. log4j.jar (required for SOAP mode)
* 14. mail.jar (required for SOAP mode)
* 15. saaj.jar (required for SOAP mode)
* 16. wsdl4j.jar (required for SOAP mode)
* 17. xalan.jar (required for SOAP mode)
* 18. xbean.jar (required for SOAP mode)
* 19. xercesImpl.jar (required for SOAP mode)
* The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
* your local development environment and then include the 3 JBoss JAR files in your class path
*
* These JAR files are located in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is located in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is located in the following path:
* <install directory>/jboss/bin/client
*
* If you want to invoke a remote forms server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files located in the following
* path
* <install directory>/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*/
import java.io.FileInputStream;
import java.util.*;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.dsc.registry.component.client.*;
import com.adobe.idp.dsc.registry.infomodel.Component;
public class DeployComponents {
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://[server]:[port]");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create a ComponentRegistryClient object
ComponentRegistryClient componentReg = new ComponentRegistryClient(myFactory);
//Reference a JAR file that represents the component to deploy
// FileInputStream componentFile = new FileInputStream("C:\\Adobe\adobe-emailSample-dsc.jar");
FileInputStream componentFile = new FileInputStream("C:\\A22\Bank.jar");
Document component = new Document(componentFile);
//Install the component
Component myComponent = componentReg.install(component);
componentReg.start(myComponent);
System.out.println("The component has been deployed");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
快速入門(SOAP模式):使用Java API設定服務的執行內容 quick-start-soap-mode-setting-the-execution-context-of-a-service-using-the-java-api
以下Java代碼示例將「運行方式調用程式」執行上下文設定為一個名為 EncryptDocument.
/*
* This Java Quick Start uses the following JAR files
* 1. adobe-taskmanager-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. activation.jar (required for SOAP mode)
* 5. axis.jar (required for SOAP mode)
* 6. commons-codec-1.3.jar (required for SOAP mode)
* 7. commons-collections-3.2.jar (required for SOAP mode)
* 8. commons-discovery.jar (required for SOAP mode)
* 9. commons-logging.jar (required for SOAP mode)
* 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 11. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 12. jaxrpc.jar (required for SOAP mode)
* 13. log4j.jar (required for SOAP mode)
* 14. mail.jar (required for SOAP mode)
* 15. saaj.jar (required for SOAP mode)
* 16. wsdl4j.jar (required for SOAP mode)
* 17. xalan.jar (required for SOAP mode)
* 18. xbean.jar (required for SOAP mode)
* 19. xercesImpl.jar (required for SOAP mode)
* The JBoss files must be kept in the jboss\bin\client folder. You can copy the client folder to
* your local development environment and then include the 3 JBoss JAR files in your class path
*
* These JAR files are located in the following path:
* <install directory>/sdk/client-libs/common
*
*
*
* If you want to invoke a remote forms server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files located in the following
* path
* <install directory>/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.dsc.registry.infomodel.ServiceConfiguration;
import com.adobe.idp.dsc.registry.service.ModifyServiceConfigurationInfo;
import com.adobe.idp.dsc.registry.service.client.ServiceRegistryClient;
/*
* This Java quick start sets the Run-As Invoker to a service named EncryptDocument
*/
public class SetRunAsConfiguration {
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://[server]:[port]");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "tblue");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceRegistryClient object
ServiceClientFactory _factory = ServiceClientFactory.createInstance(connectionProps);
ServiceRegistryClient _src = new ServiceRegistryClient(_factory);
//Reference the EncryptDocument service
ServiceConfiguration _config = _src.getHeadActiveConfiguration("EncryptDocument");
//Set the RUN_AS_INVOKER execution context
ModifyServiceConfigurationInfo _configModifyInfo = new ModifyServiceConfigurationInfo();
_configModifyInfo.setServiceId(_config.getServiceId());
_configModifyInfo.setMajorVersion(_config.getMajorVersion());
_configModifyInfo.setMinorVersion(_config.getMinorVersion());
_configModifyInfo.setRunAsConfiguration(ServiceConfiguration.RUN_AS_INVOKER);
_config = _src.modifyConfiguration(_configModifyInfo);
}catch (Exception e) {
e.printStackTrace();
}
}
}
快速入門(SOAP模式):使用Java API停用服務安全性 quick-start-soap-mode-disabling-service-security-using-the-java-api
以下Java代碼示例禁用了示例EncryptDocument服務以及從此服務中調用的服務(設定值和加密服務)的安全性。
/*
* This Java Quick Start uses the following JAR files
* 1. adobe-taskmanager-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. activation.jar (required for SOAP mode)
* 5. axis.jar (required for SOAP mode)
* 6. commons-codec-1.3.jar (required for SOAP mode)
* 7. commons-collections-3.2.jar (required for SOAP mode)
* 8. commons-discovery.jar (required for SOAP mode)
* 9. commons-logging.jar (required for SOAP mode)
* 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 11. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 12. jaxrpc.jar (required for SOAP mode)
* 13. log4j.jar (required for SOAP mode)
* 14. mail.jar (required for SOAP mode)
* 15. saaj.jar (required for SOAP mode)
* 16. wsdl4j.jar (required for SOAP mode)
* 17. xalan.jar (required for SOAP mode)
* 18. xbean.jar (required for SOAP mode)
* 19. xercesImpl.jar (required for SOAP mode)
*
* The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
* your local development environment and then include the 3 JBoss JAR files in your class path
*
* These JAR files are located in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is located in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is located in the following path:
* <install directory>/jboss/bin/client
*
* If you want to invoke a remote forms server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files located in the following
* path
* <install directory>/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.dsc.registry.infomodel.ServiceConfiguration;
import com.adobe.idp.dsc.registry.service.ModifyServiceInfo;
import com.adobe.idp.dsc.registry.service.client.ServiceRegistryClient;
/*
* This Java quick start disables security from the EncryptDocument process
* and each service that is located in this process
*/
public class DisableSecurity{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://[server]:[port]");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceRegistryClient object
ServiceClientFactory _factory = ServiceClientFactory.createInstance(connectionProps);
ServiceRegistryClient _src = new ServiceRegistryClient(_factory);
//Reference the EncryptDocument process and each service that is
//invoked from within the EncryptDocument process
ServiceConfiguration encryptDocumentService = _src.getHeadActiveConfiguration("EncryptDocument");
ServiceConfiguration setValueService = _src.getHeadActiveConfiguration("SetValue");
ServiceConfiguration encryptionService = _src.getHeadActiveConfiguration("EncryptionService");
//Create a ModifyServiceInfo object
ModifyServiceInfo si = new ModifyServiceInfo();
//Disable security from the EncryptDocument service
si.setId(encryptDocumentService.getServiceId());
si.setSecurityEnabled(false);
_src.modifyService(si);
//Disable security from the SetValue service
si.setId(setValueService.getServiceId());
si.setSecurityEnabled(false);
_src.modifyService(si);
//Disable security from the EncryptionService
si.setId(encryptionService.getServiceId());
si.setSecurityEnabled(false);
_src.modifyService(si);
}catch (Exception e) {
e.printStackTrace();
}
}
}
快速入門(SOAP模式):使用Java API啟動服務 quick-start-soap-mode-starting-a-service-using-the-java-api
以下Java代碼示例將啟動名為 SendEmailService.
package com.adobe.sample.servicemanager;
/**
* This Java Quick Start uses the following JAR files:
* 1. adobe-livecycle-client.jar
* 2. adobe-usermanager-client.jar
* 3. adobe-workflow-client-sdk.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if AEM Forms is not deployed on Jboss)
* 6. jacorb.jar (use a different JAR file if the forms server is not deployed on JBoss)
* 7. jnp-client.jar (use a different JAR file if the forms server is not deployed on JBoss)
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.registry.infomodel.ServiceConfiguration;
import com.adobe.idp.dsc.registry.service.client.ServiceRegistryClient;
public class StartService {
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty("DSC_DEFAULT_SOAP_ENDPOINT", "https://[server]:[port]");
ConnectionProps.setProperty("DSC_TRANSPORT_PROTOCOL","SOAP");
ConnectionProps.setProperty("DSC_SERVER_TYPE", "JBoss");
ConnectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator");
ConnectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(ConnectionProps);
//Create a ServiceRegistryClient object
ServiceRegistryClient serviceReg = new ServiceRegistryClient(myFactory);
//Reference the SendEmailService
ServiceConfiguration myServiceConfig = serviceReg.getHeadActiveConfiguration("SendEmailService");
//Start the SendEmailService
serviceReg.start(myServiceConfig);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
快速入門(SOAP模式):使用Java API修改服務配置值 quick-start-soap-mode-modifying-a-services-configuration-values-using-the-java-api
以下Java示例修改屬於SendEmail服務的配置值。
/*
* This Java Quick Start uses the following JAR files
* 1. adobe-taskmanager-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. activation.jar (required for SOAP mode)
* 5. axis.jar (required for SOAP mode)
* 6. commons-codec-1.3.jar (required for SOAP mode)
* 7. commons-collections-3.2.jar (required for SOAP mode)
* 8. commons-discovery.jar (required for SOAP mode)
* 9. commons-logging.jar (required for SOAP mode)
* 10. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 11. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 12. jaxrpc.jar (required for SOAP mode)
* 13. log4j.jar (required for SOAP mode)
* 14. mail.jar (required for SOAP mode)
* 15. saaj.jar (required for SOAP mode)
* 16. wsdl4j.jar (required for SOAP mode)
* 17. xalan.jar (required for SOAP mode)
* 18. xbean.jar (required for SOAP mode)
* 19. xercesImpl.jar (required for SOAP mode)
* The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
* your local development environment and then include the 3 JBoss JAR files in your class path
*
* These JAR files are located in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is located in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is located in the following path:
* <install directory>/jboss/bin/client
*
* If you want to invoke a remote forms server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files located in the following
* path
* <install directory>/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.registry.infomodel.ConfigParameter;
import com.adobe.idp.dsc.registry.infomodel.ServiceConfiguration;
import com.adobe.idp.dsc.registry.service.ModifyServiceConfigurationInfo;
import com.adobe.idp.dsc.registry.service.client.ServiceRegistryClient;
public class ModifyService {
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty("DSC_DEFAULT_SOAP_ENDPOINT", "https://[server]:[port]");
ConnectionProps.setProperty("DSC_TRANSPORT_PROTOCOL","SOAP");
ConnectionProps.setProperty("DSC_SERVER_TYPE", "JBoss");
ConnectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator");
ConnectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(ConnectionProps);
//Create a ServiceRegistryClient object
ServiceRegistryClient serviceReg = new ServiceRegistryClient(myFactory);
//Reference the SendEmailService
ServiceConfiguration myServiceConfig = serviceReg.getHeadServiceConfiguration("SendEmailService");
//Create a ModifyServiceConfigurationInfo object
ModifyServiceConfigurationInfo modService = new ModifyServiceConfigurationInfo();
//Set configuration values required by the SendEmailService
String serviceId = myServiceConfig.getServiceId();
modService.setServiceId(serviceId);
modService.setMajorVersion(1);
modService.setConfigParameterAsText("smtpHost","mySMTPSERVER");
modService.setConfigParameterAsText("smtpUser","smyUserName");
modService.setConfigParameterAsText("smtpPassword","myPassword");
//Modify the service’s configuration values
serviceReg.modifyConfiguration(modService);
//Conform the new configuration values
ServiceConfiguration serviceConfig = serviceReg.getServiceConfiguration("SendEmailService",1,0);
ConfigParameter cp = serviceConfig.getConfigParameter("smtpUser");
String configValue = cp.getTextValue();
System.out.println(configValue);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
快速入門(SOAP模式):使用Java API移除元件 quick-start-soap-mode-removing-components-using-the-java-api
下列Java程式碼範例會使用Java API來移除元件。
/*
* This Java Quick Start uses the following JAR files
* 1. adobe-taskmanager-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the forms server is not deployed
* on JBoss)
* 6. commons-code-1.3.jar
* 7. adobe-workflow-client-sdk.jar
* 8. jacorb.jar (use a different JAR file if the forms server is not deployed on JBoss)
* 9. jnp-client.jar (use a different JAR file if the forms server is not deployed on JBoss)
*
* The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
* your local development environment and then include the 3 JBoss JAR files in your class path
*
* These JAR files are located in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is located in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is located in the following path:
* <install directory>/jboss/bin/client
*
* If you want to invoke a remote forms server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files located in the following
* path
* <install directory>/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.dsc.registry.component.client.*;
import com.adobe.idp.dsc.registry.infomodel.Component;
public class RemoveComponent {
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://[server]:[port]");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create a ComponentRegistryClient object
ComponentRegistryClient componentReg = new ComponentRegistryClient(myFactory);
//Retrieve the Id of the component to remove from the service container
Component myComponent = componentReg.getComponent("com.adobe.livecycle.sample.email.emailSampleComponent", "1.0");
//Determine if the component is in a running state
if (myComponent.getState()== Component.RUNNING)
{
//Stop the component
Component stoppedComponent = componentReg.stop(myComponent);
//Uninstall the component
componentReg.uninstall(stoppedComponent);
}
else
componentReg.uninstall(myComponent);
System.out.println("The component was removed.");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da