小编tje*_*net的帖子

如何从RAD内部本地运行Websphere Portal/portlet进行调试

我一直在寻找在互联网如何设置与RAD IDE本地Portal环境一起,我发现线程像这样但是这是古代历史的线程(在IT来说的),或者仅是指与RAD优化门户网站(点击这里).目前我正在运行RAD 8.0.4.1,我可以运行WAS实例,但我无法设法让Portal环境在本地运行.我读到过去有一些特定的Portal测试环境,但是对于新的RAD,我必须安装一个完整的Portal吗?在哪里得到它?我无法在任何地方找到好的参考.

我想在本地Portal-context中本地调试我的portlet.目前,portlet部署在远程Portal服务器上.这需要花费时间(包WAR,上传,刷新节点等).所以我想在本地运行我们的Portal,包括它的portlet.

在RAD中,我可以定义新服务器,并且可以看到"WAS 7上的WebSphere Portal v6.1服务器"选项,但它需要我定义服务器运行时环境.这将打开一个新的弹出窗口,我必须指定:

  • WebSphere Portal位置
  • WebSphere Application Server位置

我的运行时安装在"IBM\SDP\runtimes"中,其中包含以下文件夹"base_stub,base_v6_stub,base_v7,base_v7_stub,base_v8_stub,base_v61_stub,portal_v61_stub,updi_v7x,updi_v70,wsdk".无论我试图指向哪个位置,它都会不断给出错误信息:"The Portal Server installation is not correct".

我有以下问题:

  • 我需要在本地使用portlet运行/调试我的门户网站?
  • 我在运行时目录中看到portal_v61_stub的事实意味着没有安装Portal服务器?我的IBM安装管理器没有专门显示安装Portal Server的选项.
  • 是否可以在本地运行portlet/portal并使用hotswapping立即查看代码/视图中的更改?
  • 我在哪里可以下载/安装所需的软件?
  • 我听说你需要一台非常重的机器在本地进行门户/调试(我在3.00 GHz的8 GB/Intel E8400上运行.)
  • 如何将当前在远程服务器上运行的Portal-setup传输到本地系统(镜像/只复制文件?)

debugging websphere portal local ibm-rad

8
推荐指数
1
解决办法
4449
查看次数

在方法内部“回滚”REST 方法调用的最佳实践

标题可能不正确,但我会尽力解释我的问题。我的项目是一个 Spring Boot 项目。我有调用外部 REST 端点的服务。

我有一个服务方法,其中包含对我拥有的其他服务的多个方法调用。每个单独的方法调用都可能成功与否。每个方法调用都对 REST 端点进行,并且可能存在一些问题,例如 Web 服务不可用或在极少数情况下抛出未知异常。无论发生什么,我都需要能够跟踪哪些方法调用成功,如果其中任何一个失败,我想回滚到原始状态,就好像什么也没发生一样,将其视为@Transactional 注释。所有 REST 调用都是不同的端点,需要单独调用,并且来自我没有影响的外部方。例子:

public MyServiceImpl implements MyService {
@Autowired
private Process1Service;
@Autowired
private Process2Service;
@Autowired
private Process3Service;
@Autowired
private Process4Service;

public void bundledProcess() {
       process1Service.createFileRESTcall();
       process2Service.addFilePermissionsRESTcall();
       process3Service.addFileMetadataRESTcall(); <-- might fail for example
       process4Service.addFileTimestampRESTcall();       
  }
}
Run Code Online (Sandbox Code Playgroud)

例如,如果process3Service.addFileMetadataRESTcall失败,我想对 process3 之前的每个步骤执行类似撤消(以相反顺序)的操作:

process2Service.removeFilePermissionsRESTcall();
process1Service.deleteFileRESTcall();
Run Code Online (Sandbox Code Playgroud)

我读过命令模式,但它似乎用于应用程序内的撤消操作,作为一种已执行操作的历史记录,而不是在 Spring Web 应用程序内。这对我的用例是否也正确,或者如果成功,我应该跟踪每个方法/网络服务调用吗?有没有这样做的最佳实践?

我想无论我如何跟踪它,我都需要知道哪个方法调用失败,然后从那里执行我的“撤消”方法 REST 调用。尽管从理论上讲,即使这些调用当然也可能会失败。

我的主要目标是不创建(在我的示例中)未执行任何进一步处理的文件。它要么全部成功,要么一无所获。一种交易。

更新 1:基于评论改进的伪实现:

public Process1ServiceImpl implements Process1Service {
    public void createFileRESTcall() throws MyException {
         // Call an external REST api, …
Run Code Online (Sandbox Code Playgroud)

java rest undo rollback spring-boot

6
推荐指数
1
解决办法
4866
查看次数

使用从 UI 中的资源中选择的工件手动运行 YAML 构建管道将被忽略

我们有一个 YAML 文件 ( pipelineB),它执行它必须执行的操作,它从特定的其他现有构建管道 ( pipelineA) 下载最新的构建工件。这是自动触发的。现在我们希望pipelineB手动运行此构建并能够选择要使用的另一个工件版本。在 Azure DevOps 构建管道中,有一个选项显示“运行管道”,您可以在其中选择要使用的“资源”。如果您选择一个资源,您最终会看到一个包含所有构建的列表,pipelineA您可以从中进行选择。

运行管道

资源

PipelineA 运行

1.2.43-10019-master如果我们然后从管道运行中选择较旧的(例如)构建pipelineA并运行pipelineB,并且我们查看日志记录,我们会发现它会忽略我们手动选择的内容并始终下载最新版本。我可以理解它是这样做的,因为该DownloadBuildArtifact@0步骤告诉我们使用latestFromBranch构建版本来下载。

我的问题:我们如何手动选择资源构建工件并在 YAML 管道中进一步使用所选版本?理想情况下,如果您不进行手动运行/选择,则默认情况下它应该只使用工件的最新版本。

下面是我们的 YAML 管道的摘录:

name: pipelineB

resources:
  pipelines:

  - pipeline: pipelineA
    source: pipelineA
    branch: master
    trigger:
      branches:
        - master

steps:

  - task: DownloadBuildArtifacts@0
    name: 
    displayName: 'Download pipelineA artifact'
    inputs:
      buildtype: specific
      project: ourProjectName
      pipeline: pipelineA
      branchName: refs/heads/master
      buildVersionToDownload: latestFromBranch
      downloadType: specific
      downloadPath: $(Pipeline.Workspace)
Run Code Online (Sandbox Code Playgroud)

基于@Krzysztof Madej 答案的工作解决方案。仅对于需要更改DownloadBuildArtifacts@0字段的步骤 ,并且需要引入引用资源的新字段。buildVersionToDownloadspecific …

azure-devops azure-pipelines

4
推荐指数
1
解决办法
2028
查看次数

Grails 3+(3.0.11)中的Swagger 2.0支持不起作用

我正在运行Grails 3.0.11并希望为我的REST端点创建Swagger文档.我通过添加以下内容将SwaggyDoc - 插件添加到build.gradle脚本中的依赖项中:

compile "org.grails.plugins:swaggydoc:0.26.0".
Run Code Online (Sandbox Code Playgroud)

在IntelliJ中,我看到Swaggydoc依赖项已添加到我的库列表中.

通过grails run-app命令启动我的Grails应用程序并通过输入http:// localhost:8080/api /打开我的应用程序后,我收到404错误,告知该页面不存在.

我是否需要更多地配置或运行特殊的东西来生成文档?我已经尝试在Git项目中打开一张票,并且没有成功地联系作者.

Update1:似乎有一个Grails 3插件(在Versioneye找到?),我补充说:

compile "org.grails.plugins:swaggydoc-grails3:0.26.0"
Run Code Online (Sandbox Code Playgroud)

它确实工作了一半,默认情况下某种Pet-demo是可见的,它在域和枚举中的约束失败.实际上看起来效果不好.

Update2:正如Dilip Krishnan所指出的,我试图使用SpringFox,首先我将依赖项添加到我的Gradle构建文件中:

compile("io.springfox:springfox-swagger2:2.3.1")
compile("io.springfox:springfox-swagger-ui:2.3.1")
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个名为ApiDocumentationConfiguration的新类,其中包含以下代码:

 @Configuration
 @EnableSwagger2
 public class ApiDocumentationConfiguration {
 @Bean
 public Docket documentation() { 
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build();
 }

 @Bean
 public UiConfiguration uiConfig() {
    return UiConfiguration.DEFAULT;
 }

 private ApiInfo metadata() {
    return new ApiInfoBuilder()
           .title("My awesome API")
            .description("Some description")
            .version("1.0")
            .contact("my-email@domain.org")
            .build();
 }
}
Run Code Online (Sandbox Code Playgroud)

My Grails资源文件包含以下代码:

beans = …
Run Code Online (Sandbox Code Playgroud)

grails spring swagger

3
推荐指数
1
解决办法
2282
查看次数