小编Vic*_*usa的帖子

如何避免在CXF或JAX-WS生成的Web服务客户端中指定WSDL位置?

当我使用来自CXF的wsdl2java(生成类似于wsimport的东西)生成一个webservice客户端时,通过maven,我的服务从这样的代码开始:

@WebServiceClient(name = "StatusManagement", 
                  wsdlLocation = "c:/some_absolute_path_to_a_wsdl_file.wsdl",
                  targetNamespace = "http://tempuri.org/") 
public class StatusManagement extends Service {

    public final static URL WSDL_LOCATION;
    public final static QName SERVICE = new QName("http://tempuri.org/", "StatusManagement");
    public final static QName WSHttpBindingIStatus = new QName("http://tempuri.org/", "WSHttpBinding_IStatus");
    static {
        URL url = null;
        try {
            url = new URL("c:/some_absolute_path_to_a_wsdl_file.wsdl");
        } catch (MalformedURLException e) {
            System.err.println("Can not initialize the default wsdl from c:/some_absolute_path_to_a_wsdl_file.wsdl");
            // e.printStackTrace();
        }
        WSDL_LOCATION = url;
    }
Run Code Online (Sandbox Code Playgroud)

硬编码的绝对路径真的很糟糕.生成的类不能在除我之外的任何其他计算机上工作.

第一个想法是将WSDL文件(以及它导入的所有内容,其他WSDL和XSD)放在jar文件和类路径中.但我们想避免这种情况.由于所有这些都是由基于WSDL和XSD的CXF和JAXB生成的,因此我们认为在运行时需要知道WSDL没有意义.

wsdlLocation属性旨在覆盖WSDL位置(至少这是我在某处获得的),默认值为"".由于我们使用maven,我们尝试<wsdlLocation></wsdlLocation>在CXF的配置中包含以尝试强制源生成器将wsdlLocation留空.但是,这只是使它忽略XML标记,因为它是空的.我们做了一个非常难看的可耻黑客,使用<wsdlLocation>" + "</wsdlLocation>. …

java wsdl cxf wsdl2java

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

如何通过Windows命令行关闭TCP和UDP端口

有人知道如何通过Windows命令行关闭单个连接的TCP或UDP套接字?

谷歌搜索这个,我看到有些人问同样的事情.但答案看起来像netstat或netsh命令的手册页,侧重于如何监控端口.我不想要如何监控它们的答案(我已经这样做了).我想关闭/杀死他们.

编辑,澄清:假设我的服务器侦听TCP端口80.客户端建立连接并为其分配端口56789.然后,我发现这种连接是不受欢迎的(例如,这个用户正在做坏事,我们要求他们停止但是连接不会在途中被丢弃).通常情况下,我会添加防火墙来完成这项工作,但这需要一些时间,而且我处于紧急状态.杀死拥有连接的进程在这里确实是一个坏主意,因为这会占用服务器(当我们只想选择性地暂时删除这一个连接时,所有用户都将失去功能).

networking

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

了解Java 8中的Spliterator,Collector和Stream

我无法理解StreamJava 8中的接口,特别是它SpliteratorCollector接口有关的地方.我的问题是我根本就没有理解SpliteratorCollector接口,并因此在Stream界面依然有些模糊了我.

究竟什么是a Spliterator和a Collector,我该如何使用它们?如果我愿意自己编写SpliteratorCollector(也可能是我自己的编写Stream过程),我应该做什么而不是做什么?

我阅读了一些散布在网络上的例子,但由于这里的所有内容都是新的并且可能会有变化,因此示例和教程仍然非常稀少.

java lambda java-8 spliterator

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

JDK8 - 尝试使用Maven javadoc插件生成javadoc时出现错误"找不到javax.interceptor.InterceptorBinding的类文件"

我正在使用JDK8(在Jenkins推出的Linux上使用Win x64 u25 JDK +在我的Eclipse工作区上尝试过它 - jdk-8u20-linux-x64,两者都有同样的问题).

我有多模块Maven项目(我从包装类型为"pom"的主模块启动Maven目标"javadoc:aggregate").

Pom构建部分如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
                <additionalparam>-Xdoclint:none</additionalparam>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

我总是收到错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:aggregate (default-cli) on project uloan-global-build: An error has occurred in JavaDocs report generation:
[ERROR] Exit code: 1 - javadoc: error - com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.interceptor.InterceptorBinding not found
[ERROR] 
[ERROR] Command line was: /usr/java/jdk1.8.0_20/jre/../bin/javadoc @options @packages
Run Code Online (Sandbox Code Playgroud)

我已尽力尝试一切,并试图在Google上搜索很长时间,但没有成功.我找到了人们遇到类似问题的链接,但没有任何关于可能的解决方案的信息:

http://marc.info/?l=maven-user&m=139615350913286&w=2

http://mail-archives.apache.org/mod_mbox/maven-users/201409.mbox/%3C54101E24.6060304@gmx.de%3E(建议将JDK8更新为>更新20,我做了,但问题仍然存在相同).

任何提示或任何人都经历过这种行为(不幸的是,由于某种原因,它看起来非常"罕见")?非常绝望...

java maven maven-javadoc-plugin java-8

66
推荐指数
5
解决办法
3万
查看次数

不能让杰克逊和龙目岛一起工作

我正在尝试结合杰克逊和龙目岛.这些是我的课程:

package testelombok;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Value;
import lombok.experimental.Wither;

@Value
@Wither
@AllArgsConstructor(onConstructor=@__(@JsonCreator))
public class TestFoo {
    @JsonProperty("xoom")
    private String x;
    private int z;
}
Run Code Online (Sandbox Code Playgroud)
package testelombok;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.xebia.jacksonlombok.JacksonLombokAnnotationIntrospector;
import java.io.IOException;

public class TestLombok {

    public static void main(String[] args) throws IOException {
        TestFoo tf = new TestFoo("a", 5);
        System.out.println(tf.withX("b"));
        ObjectMapper om = new ObjectMapper().setAnnotationIntrospector(new JacksonLombokAnnotationIntrospector());
        System.out.println(om.writeValueAsString(tf));
        TestFoo tf2 = om.readValue(om.writeValueAsString(tf), TestFoo.class);
        System.out.println(tf2);
    }

}
Run Code Online (Sandbox Code Playgroud)

这些是我在classpth中添加的JAR:

java netbeans jackson lombok

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

如何在Windows中更改maven存储库文件夹?

在Windows中,maven下载C:\Documents And Settings\MyUser\.m2文件夹(或C:\Users\MyUser\.m2)中的所有内容.有一些方法可以更改它使用的文件夹吗?特别我想将它设置为在Documents And Settings/ Users文件夹中的任何位置下载.

windows windows-vista windows-7 maven

39
推荐指数
2
解决办法
4万
查看次数

动态Java字节码操作框架比较

有一些框架用于动态字节码生成,操作和编织(BCEL,CGLIB,javassist,ASM,MPS).我想了解它们,但由于我没有太多时间知道所有这些细节,我希望看到一种比较图表,说明一种与其他的优缺点,以及对为什么.

在SO中,我发现了许多类似问题的问题,答案通常说"你可以使用cglib或ASM",或者"javassist比cglib更好",或者"BCEL已经老了,正在死"或"ASM是最好的,因为它给出X和Y".这些答案很有用,但并没有完全回答我想要的范围内的问题,更深入地比较它们并给出每个问题的优点和缺点.

bytecode-manipulation cglib javassist java-bytecode-asm jvm-bytecode

29
推荐指数
3
解决办法
5917
查看次数

获取活动实例

请原谅我的简单问题,我是初学java和android开发者.当调用surfaceChanged时,如何在setCameraDisplayOrientation中获取Activity的实例?

public class MyActivity extends Activity
{
    private Camera mCamera;
    private CameraPreview mPreview;
    public final int cameraId = 0;
    public Activity activity = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    activity = this; 

        // Create an instance of Camera
        mCamera = getCameraInstance();

        // Create our Preview view and set it as the content of our activity.
        mPreview = new CameraPreview(this, mCamera);
        FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
        preview.addView(mPreview);
    }

    public void setCameraDisplayOrientation(Activity activity,
                        int cameraId, android.hardware.Camera camera) {

    } …
Run Code Online (Sandbox Code Playgroud)

java android android-activity

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

Lambda支持SLF4J API

在Log4j最新的API中,我们有Lambda支持,可以轻松管理Debug选项.

例:

logger.debug("This {} and {} with {} ", 
  () -> this, () -> that, () -> compute());
Run Code Online (Sandbox Code Playgroud)

但是对于slf4j/logback,有任何选项可以启用lambda,如上所述.那么请让我知道语法.

java logback slf4j

21
推荐指数
4
解决办法
7586
查看次数

Spring + AspectJ使用aspectj-maven-plugin编织java 8

我正在将我的项目从java 7迁移到java 8,我遇到的问题与使用aspectj编织有关aspectj-maven-plugin.

根据Haus文档,我可以使用在Java 6和7上运行的这个插件成功配置编织.但问题是我还没有找到任何方法来使用(并找到)支持java 8的插件版本7.我在这里看到插件7增加了java 8支持,但找不到使用它的方法.

这是我需要的配置插件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.7</version> <!-- AspectJ weaver plugin 7 is for java 8 (version 1.6 is for java 7) -->
          <configuration>
              <complianceLevel>1.8</complianceLevel>
              <source>1.8</source>
              <target>1.8</target>
          </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                <goal>test-compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我确认使用版本1.6的上述代码适用于Java 7,但没有运气试图使用1.7版.

你知道如何运行在Java 8上运行的spring + aspectj的weaver吗?

java spring aspectj java-8 aspectj-maven-plugin

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