java xmlmaphandle_Handler创建Dispatcher请求

Handler创建Dispatcher请求

应用场景

在Handler中执行耗时较久的程序时,等待执行过程中,客户端界面无法进行其他操作,只能等待,而通过dispatcher调度可以解决这种问题。

Handler创建Dispatcher请求

void create_dispatcher_request() {

char *err_string = NULL,*err_function = NULL;

int err_line = -1;

int rcode = ITK_ok;

char *value = "key=123abc";

tag_t request = NULLTAG;

char *uid = NULL;

SAFECALL(DISPATCHER_create_request("SIEMENS", "test", 2, NULL, NULL, 0, 0, NULLTAG, NULLTAG, 1, &value, "ONDEMAND-PRIORITY", 0, (const char**)NULL, (const char**)NULL, &request));

ECHO("request : %d\n", request);

SAFECALL(POM_tag_to_uid(request, &uid));

ECHO("request uid: %s\n", uid);

CLEANUP:

ECHO("rcode : %d\n", rcode);

}

创建响应

1、创建响应工程

1、创建一个普通的java工程,导入依赖包,依赖包存在于DispatcherClient\lib。

ba053c93fb7e

1.png

2、创建下图所示的java文件

package translator.test;

import com.teamcenter.ets.extract.DefaultTaskPrep;

import com.teamcenter.ets.request.TranslationRequest;

import com.teamcenter.translationservice.task.Option;

import com.teamcenter.translationservice.task.TranslationTask;

import com.teamcenter.translationservice.task.TranslatorOptions;

import java.io.File;

import java.io.FileOutputStream;

import java.io.PrintStream;

import java.util.Arrays;

import java.util.Map;

/**

* Created by Administrator on 7/2/2019.

*/

public class TestTask extends DefaultTaskPrep {

@Override

public TranslationTask prepareTask() throws Exception {

Map map = TranslationRequest.getTranslationArgs(request);

String fileName= "qwert.txt";

try(PrintStream ps = new PrintStream(new FileOutputStream(this.stagingLoc + File.separator + fileName))) {

for (Map.Entry entry : map.entrySet()) {

m_zTaskLogger.info("--key : " + entry.getKey() + " --value : " + entry.getValue());

ps.println(entry.getKey() + "=" + entry.getValue());

}

}

this.m_zTaskLogger.info("prepareTask start ...");

TranslationTask task = prepTransTask(null, null, null, null, false, false, null, 0, null);

TranslationTask translationTask = addRefIdToTask(task, 0);

createTranslatorOptions(translationTask, map);

TranslatorOptions translatorOptions = translationTask.getTranslatorOptions();

Option[] options = translatorOptions.getOption();

for(Option option : options) {

this.m_zTaskLogger.info("name : " + option.getName() + " value : " + option.getValue());

}

this.m_zTaskLogger.info("prepareTask end ...");

return translationTask;

}

}

3、打成jar包

4、将导出的jar包放入DispatcherClient\lib下。

5、修改DispatcherClient\conf下Service.properties文件

Translator.SIEMENS.test.Prepare=translator.test.TestTask

SIEMENS是Handler请求中ProviderName,bomchange是Handler请求中服务名,等号后面是TaskPrep类的全限定名。

6、修改Module\conf下translator.xml文件

1、在标签内加入

description="Full path to the input file which will contain user input for complete dispatcher service."/>

description="arguments for utility command"/>

SIEMENS为ProviderName,test为ServiceName,dir指定test.bat文件的路径为Translators下test文件夹。

7、书写test.bat,并放在Translators下test文件夹内。

cd "C:\Apps\PLM\dispatcher\Module\Translators\test"

java Hello %1 %2 %3

需根据实际情况修改路径,bat调用执行程序。

结果:

ba053c93fb7e

2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值