小编Chr*_*ris的帖子

将Java webapp部署到在Docker容器中运行的Tomcat 8

我是Tomcat和Docker的新手 - 所以我可能在这个问题的某个地方错过了一个Tomcat基础.

我想要做的是构建一个运行SpringBoot Restful Web服务的Docker容器,该服务只返回一些静态数据.这一切都在OSX上运行,所以我也在使用Boot2Docker.

我编写了自己的Dockerfile来构建我的app运行的容器:

FROM tomcat:8.0.20-jre8

RUN mkdir /usr/local/tomcat/webapps/myapp

COPY /1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/myapp/
Run Code Online (Sandbox Code Playgroud)

这个Dockerfile工作正常,我可以从创建的图像启动容器.

docker build -t myapp .

docker run -it --rm -p 8888:8080 myapp
Run Code Online (Sandbox Code Playgroud)

此容器正确启动并且不输出任何错误,并显示消息说我的应用程序已部署.

22-Mar-2015 23:07:21.217 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 
Deploying web application directory /usr/local/tomcat/webapps/myapp
Run Code Online (Sandbox Code Playgroud)

容器也正确地将myapp.war复制到Dockerfile中描述的路径.此外,我能够导航到Tomcat默认页面以确认Tomcat正在运行,我还可以点击所有示例等.

对于这个问题,当我导航到http://192.168.59.103:8888/myapp/getData时,我得到了404.我无法弄清楚原因.我错过了关于.war部署到Tomcat的内容吗?

java tomcat war docker spring-boot

56
推荐指数
3
解决办法
10万
查看次数

Angular 2 - 将条件样式应用于指令的子HTML元素

我正在尝试基于click事件将类应用于HTML元素.从父组件的模板设置子组件的选择器的类属性时,这可以正常工作,如下面的父组件片段所示:

[class.bordered]='isSelected(item)'
Run Code Online (Sandbox Code Playgroud)

这将适当地设置单击该项目时的样式.但是,我想基于相同类型的click事件在子组件中设置内部HTML元素的类,这里是子组件样式的所需目标:

template: `
  <div class="This is where I really want to apply the style">  
    {{ item.val }}
  </div>
`
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,很容易支持?或者这被认为是一种不好的做法,我应该设计我的组件以避免这种条件样式的情况?

完整代码:

@Component({
  selector: 'parent-component',
  directives: [ChildComponent],
  template: `
    <child-component
      *ngFor='#item of items'
      [item]='item'
      (click)='clicked(item)'
      [class.bordered]='isSelected(item)'>
    </child-component>
  `
})
export class ParentComponent {
  items: Item[];
  currentItem: item;

  constructor(private i: ItemService) {
    this.items = i.items;
  }

  clicked(item: Item): void {
    this.currentItem = item;
  }

  isSelected(item: Items): boolean {
    if (!item || !this.currentItem) {
      return false;
    }
    return item.val === this.currentItem.val; …
Run Code Online (Sandbox Code Playgroud)

angular2-directives angular2-template angular

7
推荐指数
1
解决办法
1万
查看次数