小编yst*_*an-的帖子

默认情况下,Spring Boot在哪里存储视图?

我正在尝试使用Spring Boot重新编写我的配置繁重的vanilla Spring MVC项目.我使用Spring Boot Initiaizer在IntelliJ中启动了一个全新的Spring Boot项目,我将采用最小的基于Java的配置.很多教程都指出生成的默认主类是足够的,并且@SpringBootApplication包含了所有内容.我有一个示例REST控制器工作并返回一个序列化对象作为JSON,但它似乎得到一个显示的视图证明是困难的.我的结构如下,除了我创建的webapps目录之外,其他一切都是默认的.

src
`-main
   `-java
   `-resources
     `-static
     `-templates
   `-webapp
     `-WEB-INF
        `-home.jsp
Run Code Online (Sandbox Code Playgroud)

控制器很简单.

@Controller
public class ViewMaster {
    @RequestMapping("/home")
    public String home() {
        return "home";
    }
}
Run Code Online (Sandbox Code Playgroud)

没有任何配置,我想知道Spring Boot期望存储视图的位置以及扩展名(html?).我也尝试包含以下内容application.properties但仍然出现404错误.在资源中移动WEB-INF目录或仅移动html文件也无济于事.

spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp
Run Code Online (Sandbox Code Playgroud)

我也试过在我的pom.xml中包含这些依赖项而没有任何影响.

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我必须遗漏一些痛苦明显的东西,所以如果有人可以指出这一点,那就谢天谢地!

jsp spring-mvc maven spring-boot

19
推荐指数
2
解决办法
3万
查看次数

Paramiko SFTP密钥和用户名/密码 - "哎呀,未处理的类型3"

我正在尝试通过SFTP连接到Python的远程服务器(使用Paramiko)来自动检索文件.

系统版本:操作系统:Mac OS X Lion Python:2.7.1 Paramiko:1.7.7.2

我最小的例子:

key_file = '/absolute/path/to/.ssh/id_rsa_key'  # NOT .pub
key_passphrase = 'id_rsa_key_passphrase'

host = 'ftp.test.com'
port = 22
username = 'my_ftp_username'
password = 'my_ftp_password'

# SSH Key
my_key = paramiko.RSAKey.from_private_key_file(key_file, password=key_passphrase)

# SFTP Connection
transport = paramiko.Transport((host, port))
transport.connect(username=username, password=password, pkey=my_key)
sftp = paramiko.SFTPClient.from_transport(transport)

# Print something
print sftp.listdir()

# Close connections
sftp.close()
transport.close()
Run Code Online (Sandbox Code Playgroud)

以上生成以下日志输出:

DEB [20120606-16:20:46.121] thr=1   paramiko.transport: starting thread (client mode): 0x8ae7dd0L
INF [20120606-16:20:46.241] thr=1   paramiko.transport: Connected (version 2.0, client All)
DEB [20120606-16:20:46.242] …
Run Code Online (Sandbox Code Playgroud)

python authentication sftp paramiko

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

在多租户应用程序中优化GAE/J备份和还原

我有一个多租户GAE/J应用程序,并已实施基于cron的夜间备份到Google云端存储.备份似乎简单而便宜,15GB的总数据主要包括索引.

但是,在运行测试还原后,我有几个观察结果,我正在寻找建议.

  1. 我的备份/恢复策略只涉及从一个命名空间进行恢复,但GAE不允许在恢复期间指定命名空间(尽管它用于备份).
  2. 我不得不将我的所有数据恢复到我为此目的创建的中间应用程序.
  3. 该计划涉及在任何名称空间遭受数据丢失的情况下对缺失的实体进行二次备份.
  4. 最后,将该特定数据集还原到我的实时应用程序.

以上是作品,但它是:

  1. 昂贵的:我支付一个主要包含不需要的命名空间的恢复.
  2. 耗时的

解决方法是分别指定每个命名空间的备份,以便在需要时可以单独访问它们.但我真的不喜欢必须在某处维护我的命名空间列表.

我读了GAEBAR但是理解它不适用于Java应用程序.

我很想知道是否有其他人在这方面有任何实际经验/建议?

(当然,如果Google支持从多命名空间云备份中恢复单个NS,那么最好的解决方案是)

java google-app-engine namespaces google-cloud-storage

5
推荐指数
1
解决办法
73
查看次数

Spring @RequestBody 不查找对象

我正在使用 Spring-MVC/Hibernate 编写 REST 服务,似乎 @RequestBody 是接受一堆参数并将其映射到 POJO 的推荐方法。然而,似乎通过 POST 发送的 ID 被转换为 null 而不是实际的对象。一些示例代码会更好地解释。

服务很简单:

@ResponseBody
@RequestMapping(value="add", method = RequestMethod.POST)
public ServiceResponse addTx(@RequestBody Transaction tx) {
    ...
    return ServiceResponse;
}
Run Code Online (Sandbox Code Playgroud)

交易实体有一个账户实体:

@Entity
@Table(name="Transaction")
public class Transaction {
    @Column(name="code")
    private String code;
    @OneToOne
    @JoinColumn(name="accountId")
    private Account account;
    @Column(name="amount")
    private int amount;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的浏览器发出的 POST 请求负载如下:

{code: "ascasc", amount: 23, accountId: 1, ... }
Run Code Online (Sandbox Code Playgroud)

但在服务器端,构造的 Transaction 对象的 Account 值为 null。即 accountId 1 不会被转换为 Account 对象。我错过了什么吗?

hibernate spring-mvc

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