我需要在我的项目中使用Web服务.我使用NetBeans,所以我右键单击我的项目并尝试添加一个新的"Web服务客户端".上次我检查时,这是创建Web服务客户端的方法.但它导致了一个AssertionError,说:
java.lang.AssertionError:org.xml.sax.SAXParseException; systemId:jar:file:/path/to/glassfish/modules/jaxb-osgi.jar!/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; lineNumber:52; columnNumber:88; schema_reference:无法读取模式文档" xjc.xsd ",因为由于accessExternalSchema属性设置的限制,不允许"文件"访问.
NetBeans的默认Java平台是JDK8(Oracle的正式版),因此当我更改我的netbeans.conf文件并将JDK7(也来自Oracle)作为我的默认版本时,一切正常.所以我认为问题出在JDK8上.这是我的java -version输出:
java版"1.8.0"
Java(TM)SE运行时环境(版本1.8.0-b132)
Java HotSpot(TM)64位服务器VM(版本25.0-b70,混合模式)
现在,我将JDK7作为我的默认Java平台.如果有办法使JDK8工作,请分享.
我一直在检查Oracle在JavaFX运行时库中分发的"caspian.css",我看到他们已经将一些颜色值声明为变量.例如:
-fx-base: #d0d0d0; // Caspian.css, Line 47
Run Code Online (Sandbox Code Playgroud)
......然后他们将它用作其他一些财产的价值,例如:
-fx-color: -fx-base; // Caspian.css, Line 96
Run Code Online (Sandbox Code Playgroud)
现在,我想要做的是声明一个测量单位(-fx-radius-default: 10px),然后每当我需要设置一个控件的半径时使用它,例如:
-fx-border-radius: -fx-radius-default;
-fx-background-radius: -fx-radius-default;
Run Code Online (Sandbox Code Playgroud)
到目前为止我没有成功.我的问题是:这有可能吗?
编辑:添加实验详细信息
这是我在JavaFX Scene Builder 1.1上创建的Experiment.fxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.net.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
<children>
<TextArea layoutX="200.0" layoutY="119.0" prefWidth="200.0" styleClass="track" wrapText="true" />
</children>
<stylesheets>
<URL value="@css/Experiment.css" />
</stylesheets>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)
以下是css/Experiment.css我使用的:
* {
-fx-radius-default: 10px;
}
.track {
-fx-border-radius: …Run Code Online (Sandbox Code Playgroud) 长话短说:是否可以使用Morphia为第三方库类编写类型转换器?
长话:我是Morphia的新手.我有一个实体类,其中包含一个字段类型为javax.activation.MimeType.当我尝试保存我的类的实例时,Morphia抱怨它"无法序列化类javax.activation.MimeType".我尝试编写TypeConverter并将其添加到转换器列表中但它不起作用.以下是代码段:
@Entity
@Converters(MimeTypeConverter.class)
public class Entity {
@Id ObjectId id;
String name;
javax.activation.MimeType mimeType;
}
Run Code Online (Sandbox Code Playgroud)
public class MimeTypeConverter extends TypeConverter {
@Override
public Object decode(Class targetClass,
Object fromDBObject,
MappedField optionalExtraInfo) {
MimeType mimetype;
BasicDBObject dbObject = (BasicDBObject) fromDBObject;
String mimeString = dbObject.getString("mimeType");
try{
mimetype = new MimeType(mimeString);
} catch(MimeTypeParseException ex){
mimetype = new MimeType();
}
return mimetype;
}
@Override
public Object encode(Object value, MappedField optionalExtraInfo) {
MimeType mimetype = (MimeType) value;
return mimetype.getBaseType();
}
@Override …Run Code Online (Sandbox Code Playgroud)