当我使用来自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>. …
有人知道如何通过Windows命令行关闭单个连接的TCP或UDP套接字?
谷歌搜索这个,我看到有些人问同样的事情.但答案看起来像netstat或netsh命令的手册页,侧重于如何监控端口.我不想要如何监控它们的答案(我已经这样做了).我想关闭/杀死他们.
编辑,澄清:假设我的服务器侦听TCP端口80.客户端建立连接并为其分配端口56789.然后,我发现这种连接是不受欢迎的(例如,这个用户正在做坏事,我们要求他们停止但是连接不会在途中被丢弃).通常情况下,我会添加防火墙来完成这项工作,但这需要一些时间,而且我处于紧急状态.杀死拥有连接的进程在这里确实是一个坏主意,因为这会占用服务器(当我们只想选择性地暂时删除这一个连接时,所有用户都将失去功能).
我无法理解StreamJava 8中的接口,特别是它Spliterator与Collector接口有关的地方.我的问题是我根本就没有理解Spliterator和Collector接口,并因此在Stream界面依然有些模糊了我.
究竟什么是a Spliterator和a Collector,我该如何使用它们?如果我愿意自己编写Spliterator或Collector(也可能是我自己的编写Stream过程),我应该做什么而不是做什么?
我阅读了一些散布在网络上的例子,但由于这里的所有内容都是新的并且可能会有变化,因此示例和教程仍然非常稀少.
我正在使用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,我做了,但问题仍然存在相同).
任何提示或任何人都经历过这种行为(不幸的是,由于某种原因,它看起来非常"罕见")?非常绝望...
我正在尝试结合杰克逊和龙目岛.这些是我的课程:
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:
龙目岛:https://projectlombok.org/downloads/lombok.jar(版本1.16.10)
杰克逊核心:http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.8.2/jackson-core-2.8.2.jar …
在Windows中,maven下载C:\Documents And Settings\MyUser\.m2文件夹(或C:\Users\MyUser\.m2)中的所有内容.有一些方法可以更改它使用的文件夹吗?特别我想将它设置为在Documents And Settings/ Users文件夹中的任何位置下载.
有一些框架用于动态字节码生成,操作和编织(BCEL,CGLIB,javassist,ASM,MPS).我想了解它们,但由于我没有太多时间知道所有这些细节,我希望看到一种比较图表,说明一种与其他的优缺点,以及对为什么.
在SO中,我发现了许多类似问题的问题,答案通常说"你可以使用cglib或ASM",或者"javassist比cglib更好",或者"BCEL已经老了,正在死"或"ASM是最好的,因为它给出X和Y".这些答案很有用,但并没有完全回答我想要的范围内的问题,更深入地比较它们并给出每个问题的优点和缺点.
bytecode-manipulation cglib javassist java-bytecode-asm jvm-bytecode
请原谅我的简单问题,我是初学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) 在Log4j最新的API中,我们有Lambda支持,可以轻松管理Debug选项.
例:
logger.debug("This {} and {} with {} ",
() -> this, () -> that, () -> compute());
Run Code Online (Sandbox Code Playgroud)
但是对于slf4j/logback,有任何选项可以启用lambda,如上所述.那么请让我知道语法.
我正在将我的项目从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吗?