小编Chr*_*wes的帖子

有状态与无状态Web服务

想象一个更复杂的CRUD应用程序,它具有三层架构并通过Web服务进行通信.客户端开始与服务器的对话,并做一些像向导一样的向导.要处理向导,客户端需要服务器提供的反馈.


我们开始讨论这种方法的有状态或无状态Web服务.我结合自己的经验做了一些研究,这让我想到了后面提到的问题.

具有以下属性的无状态Web服务(在我们的示例中):

+ high scalability
+ high availability
+ high speed
+ rapid testing
- bloated contract
- implementing more logic on server-side
Run Code Online (Sandbox Code Playgroud)

但是我们可以划掉前两点,我们的应用程序不需要高可伸缩性和可用性.

所以我们来到有状态的网络服务.我已经阅读了大量的博客和论坛帖子,实现有状态网络服务的最发明点是:

+ simplifies contract (protocol)
- bad testing
- runs counter to the basic architecture of http 
Run Code Online (Sandbox Code Playgroud)

但几乎所有的Web应用程序都没有这些坏点吗?Web应用程序使用cookie,查询字符串,会话ID和所有内容来避免http的无状态.

那么为什么网络服务不好呢?

web-services stateful stateless

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

Criteria API中是否存在类似Restrictions.eq(true,false)的内容?

我需要一个通用的Criterion强制结果零匹配.

有点像Restrictions.eq(true, false)

java hibernate criteria criteria-api

13
推荐指数
2
解决办法
3659
查看次数

如何使用Maven Archetype创建动态命名的文件夹?

我正在尝试构建一个这样的原型结构,一个带有一些Web框架自定义文件夹的webapp.特别是一些动态文件夹,它们也包含原型带来的一些文件.

????src
    ????main
        ????webapp
            ????WEB-INF
                ????cfg
                ?   ????log4j
                ?   ????resources
                ?       ????extensions
                ?           ????${shortName}-business
                ?           ????${shortName}-layout
                ????lib
Run Code Online (Sandbox Code Playgroud)

我为我添加了一个必需的属性,archetype-metadata.xml以便为项目创建一个简短名称,用于生成唯一文件夹.

<requiredProperties>
  <requiredProperty key="shortName" />
</requiredProperties>
Run Code Online (Sandbox Code Playgroud)

shortName我使用的属性fileSet:

<fileSet>
  <directory>[..]/resources/extensions/${shortName}-business</directory>
</fileSet>

<fileSet>
  <directory>[..]/resources/extensions/${shortName}-layout</directory>
</fileSet>
Run Code Online (Sandbox Code Playgroud)

生成原型的命令:

mvn archetype:generate -B \
       -DgroupId=com.stackoverflow \
       -DartifactId=stackoverflow-question -DarchetypeGroupId=com.stackoverflow \
       -DarchetypeArtifactId=stackoverflow-archetype -DarchetypeVersion=1.0 \
       -DshortName=soq
Run Code Online (Sandbox Code Playgroud)

我假设获得以下文件夹结构:

..\
   ????soq-business
   ????soq-layout
Run Code Online (Sandbox Code Playgroud)

但我得到这个名字${shortName}-business作为文件夹,而不是被属性替换.

..\
   ????${shortName}-business
   ????${shortName}-layout
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?如何在soq-business不知道文件夹名称的情况下将文件放在下面?

maven-2 maven-archetype

13
推荐指数
1
解决办法
5816
查看次数

如何用Java命名导入/导出包?

我有一个更大的导出/导入例程,我决定将这些包分成两个更小的包.

我试着用org.yourcompany.business.export...工作正常!遗憾的org.yourcompany.business.import是,由于importJava中的reserved关键字,因此无法使用具有该名称的相反包.

您如何命名导入/导出包?

谢谢!

java naming naming-conventions

12
推荐指数
2
解决办法
4731
查看次数

在每次迭代中分配"it"(groovy)

嘿,我尝试修剪groovy列表中的每个字符串项

list.each() { it = it.trim(); }
Run Code Online (Sandbox Code Playgroud)

但这仅适用于闭包,在列表中字符串仍然是"foo","bar"和"groovy".

我怎样才能实现这一目标?

string groovy trim immutability

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

由于缺少bean端点映射,迁移到Spring WS 2.0失败了?

我们使用PayloadRootQNameEndpointMapping(基于脚本语言如Groovy或别的东西),以给定的根映射端点脚本QName.我们最近尝试将spring ws迁移到2.0版.PayloadRootQNameEndpointMapping的javadoc 显示该类被标记为已弃用.

PayloadRootQNameEndpointMapping 从Spring Web Services 2.0开始,不赞成使用 PayloadRootAnnotationMethodEndpointMapping

由于注释是静态的,因此我们无法为脚本编写端点提供动态概念.到目前为止,我们可以将处理脚本端点(提供脚本文件和一些上下文)的Bean一般映射到根QName.

:我们如何在不使用已弃用的API的情况下实现好的旧bean端点到Root QName映射?有任何想法吗?

先感谢您.

java spring spring-ws

11
推荐指数
1
解决办法
600
查看次数

使用maven-eclipse-plugin的Maven webapp不会生成<dependent-module>

我使用eclipse:eclipse目标来生成Eclipse Project环境.部署工作正常.该目标为所有需要的依赖项创建var类路径条目.

有了m2eclipseMaven容器,它定义了一个WEB-INF/lib适合我的导出文件夹.但我不想依赖,m2eclipse所以我不再使用它了.

eclipse:eclipse目标生成的类路径条目没有这样的导出文件夹.

在使用WTP引导servlet容器时,它会将除库之外的所有资源和类发布到上下文中.

什么是缺少发布所需的库,或者如果没有m2eclipse集成则不可能?

环境

  • Eclipse 3.5 Java EE Galileo
  • Apache Maven 2.2.1(r801777; 2009-08-06 21:16:01 + 0200)
  • Java版本:1.6.0_14
  • m2eclipse的

maven-eclipse-plugin配置

    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-eclipse-plugin</artifactId>
     <version>2.8</version>
     <configuration>
      <projectNameTemplate>someproject-[artifactId]</projectNameTemplate>
      <useProjectReferences>false</useProjectReferences>
      <downloadSources>false</downloadSources>
      <downloadJavadocs>false</downloadJavadocs>

      <wtpmanifest>true</wtpmanifest>
      <wtpversion>2.0</wtpversion>
      <wtpapplicationxml>true</wtpapplicationxml>
      <wtpContextName>someproject-[artifactId]</wtpContextName>

      <additionalProjectFacets>
        <jst.web>2.3</jst.web>
      </additionalProjectFacets>
     </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

生成的文件

执行eclipse:eclipse目标后,依赖模块未在我生成的列表中列出.settings/org.eclipse.wst.common.component,因此在服务器启动时我会错过这些依赖项.

这就是我得到的:

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
  <wb-module deploy-name="someproject-core">
    <wb-resource deploy-path="/" source-path="src/main/java"/>
    <wb-resource deploy-path="/" source-path="src/main/webapp"/>
    <wb-resource deploy-path="/" source-path="src/main/resources"/>
  </wb-module>
</project-modules>
Run Code Online (Sandbox Code Playgroud)

即将推出的读者更新

这里的问题是偏离packaging型,如果你使用maven-eclipse-plugin …

eclipse maven-2 eclipse-wtp

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

使用Java裁剪/修剪具有空白空间的JPG文件

是否有一个框架能够删除图像的白色空间(矩形).我们从技术图纸创建图像缩略图,遗憾的是PDF格式.我们将PDF转换为SVG,然后转换为JPG.通常技术图纸非常小,现在放在缩略图的左上角:

+---------+----------------------+
|         |                      |
| (image) |                      |
|         |                      |
+---------+                      |
|                                |
|                                |
|                                |
|                                |
|              (empty space)     |
|                                |
|                                |
+--------------------------------+
Run Code Online (Sandbox Code Playgroud)

那么如何轻松删除空白区域并缩小JPG文件呢?

java image crop

9
推荐指数
2
解决办法
8833
查看次数

为什么无法在TypeScript中导出类实例?

我没有找到一种在TypeScript中轻松导出类实例的方法.我必须提出以下解决方法来生成正确的javascript代码.

 var expo = new Logger("default");
 export = expo;
Run Code Online (Sandbox Code Playgroud)

生成

var expo = new Logger("default");
module.exports = expo;
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来实现这一目标?

javascript typescript

9
推荐指数
3
解决办法
8510
查看次数

如何将javax.xml.transform.Source转换为InputStream?

如何将a javax.xml.transform.Source转换为InputStream?实施Sourcejavax.xml.transform.dom.DOMSource.

Source inputSource = messageContext.getRequest().getPayloadSource();
Run Code Online (Sandbox Code Playgroud)

java io transform

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