在解组操作期间将nil =“true”转换为null

我从服务器接收XML,其架构几乎指定了每个元素: 我正在尝试找到一种干净的方法,将我收到的标记为xsi:nil=”true”每个元素转换为null,当它被解组到JAXB对象中时。 所以这样的事情: 应该导致我的JAXB对象具有值为null的myIntElementName属性,而不是具有nil属性设置为true的JAXBElement对象(或沿着这些行的任何内容)。 我对发送给我使用nillable属性的XML的系统没有任何控制权,所以当我收到它时,我需要在我的结尾转换它。

如何使用springdependency injection连接多个fxml控制器?

我阅读了一些基本示例的春季教程,我对如何正确连接事物感到困惑。 问题是,我想使用应用程序上下文来提取单例控制器引用,但我读到了一些其他主题,除非绝对必要,否则不应直接访问应用程序上下文。 我想我应该使用构造函数来实例化我想要的引用,但是这里的事情对我来说都很模糊。 我有几个fxml文件的javafx应用程序。 我有一个主要的fxml和其他动态加载在main中。 我将使用简化代码,例如两个fxml控制器, MainController.java (用于主fxml)和ContentController.java (用于内容fxml) 想法是内容fxml有TabPane,主fxml有按钮,在ContentController上的TabPane中打开新选项卡。 我目前正在做这样的事情 bean xml: MainControler: public class MainOverlayControler { ApplicationContext context; @FXML private BorderPane borderPane; @FXML private void initialize() { loadContentHolder(); } @FXML private Button btn; @FXML private void btnOnAction(ActionEvent evt) { ((ContentController)context.getBean(“contentController”)).openNewContent(); } private void loadContentHolder() { //set app context context = new ClassPathXmlApplicationContext(“Beans.xml”); Node […]

弹簧双向转换器

Spring 3具有类型转换这样一个很好的function。 它提供了一个转换器SPI( Converter ),用于实现差分转换逻辑。 Converter类型的子类允许定义单向转换(仅从S到T),因此如果我还希望从T到SI执行Converter需要定义另一个实现Converter转换器类。 如果我有许多可以转换的类,我需要定义许多转换器。 是否有可能在一个转换器中定义双向转换逻辑(从S到T和从T到S)? 以及它将如何使用? PS。 现在我通过ConversionServiceFactoryBean使用我的转换器在配置文件中定义/注入它们

尝试使用@Retryable排除exception – 导致抛出ExhaustedRetryException

我正在尝试在调用REST模板的方法上使用@Retryable 。 如果由于通信错误而返回错误,我想重试,否则我想在调用时抛出exception。 当ApiException发生时,我得到一个ExhaustedRetryException,并且没有找到足够的’recoverables’,即@Recover方法,而不是被@Retryable抛出和忽略。 我以为我会看到如果只有可恢复的方法存在可能使它快乐并仍然按照希望执行。 没那么多。 它不是抛出exception,而是调用可恢复的方法。 @Retryable(exclude = ApiException include = ConnectionException, maxAttempts = 5, backoff = @Backoff(multiplier = 2.5d, maxDelay = 1000000L, delay = 150000L)) Object call(String domainUri, ParameterizedTypeReference type, Optional domain = Optional.empty(), HttpMethod httpMethod = HttpMethod.POST) throws RestClientException { RequestEntity request = apiRequestFactory.createRequest(domainUri, domain, httpMethod) log.info “************************** Request Entity **************************” log.info […]

调用DataSource.getConnection不返回预期的连接

我有以下代码: Hashtable env1 = new Hashtable(); env1.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,”com.ibm.websphere.naming.WsnInitialContextFactory”); log.info(“Executed step 1”); env1.put(javax.naming.Context.PROVIDER_URL, “iiop://myhost.com:9301”); log.info(“Executed step 2”); Context ctx = new InitialContext(env1); DataSource ds = (DataSource)ctx.lookup(“jdbc/mydatasource”); log.info(“Excecuted lookup =”+ds); conn = ds.getConnection(); 我在连接到WAS 6.1.0.3的独立应用程序中有以前的代码,以便从数据源检索连接。 代码非常简单,我看到相同的代码在不同的环境中工作,但在这种情况下,当我调用getConnection时,我得到一个exception。 数据源是WAS具有正确的身份validation别名集,并且在测试连接时,它可以从WAS端正常工作,但之前的代码将无法正常工作。 如果我改变这一行: conn = ds.getConnection(); 对此: conn = ds.getConnection(“username”,“password”); 然后代码将工作! 但这不是我想要的,因为数据源中的连接应该已经设置了凭据。 我最初认为这是一个Sybase问题,但它也发生在Oracle上,所以宁愿说我有WAS问题。 如果您对exception感到好奇,对于Sybase,我得到: java.sql.SQLException: JZ004: User name property missing in DriverManager.getConnection(…, Properties).DSRA0010E: […]

编程创建形状并在控制台上显示它们

我得到了如下的小作业。 能否请您详细说明如何实现这一点 编写一个简单的结构化程序和简单的oo程序,实现显示形状function。 你的程序应该简单地打印(控制台)数字,如果形状,然后要求每个形状显示自己,这也将导致生成一行输出到控制台,每个形状一个。 对于主程序来说,在对该集合进行排序和显示形状之前创建一组形状是完全可以的。 你的程序应该支持圆形,三角形和正方形,但应该使用多态,这样主程序就不知道它正在处理的形状类型,而是统一处理形状 我创建了一个程序来创建如下所示的形状,但我不确定如何创建所提到的形状并将它们存储在集合中并迭代以在控制台上显示这些形状。 我被告知不要使用数据库来存储形状 import java.awt.Color; import java.awt.Graphics; import javax.swing.JApplet; public class DrawShapes extends JApplet { public void paint(Graphics g) { g.setColor(Color.RED); // drawing string g.drawString(“Hello World!”, 100, 100); // drawing rectangle g.draw3DRect(120, 120, 120, 120, true); g.setColor(Color.blue); g.fill3DRect(120, 120, 120, 120, true); // drawing circle g.drawOval(240, 240, 120, 120); g.setColor(Color.CYAN); […]

Akka调度程序()每次重复都会延迟

我有一个简单的调度程序,每1秒重复一次任务: Cancellable task = Akka.system().scheduler().schedule( Duration.create(0, TimeUnit.MILLISECONDS), Duration.create(1, TimeUnit.SECONDS), actor, new TickMsg(“Tick”, 0, 120) ); 不幸的是,每个传递都是迟到的ticker-duration收报器ticker-duration所以最终演员在100毫秒后正好收到TickMsg – 好的,这在文档中描述并且我很清楚: 它不会在确切的时间执行任务,但是在每个滴答声中,它将运行过期的所有内容。 我无法理解的是为什么每个传球都迟到了,事实上这意味着每次传球而不是1000毫秒需要1100毫秒。 在10次通过后的结果,我们有1秒的延迟,1分钟后6秒,1小时后6分钟等… 一些解决方案是将重复持续时间设置得稍短一些,因此在需要的时间点不会迟到,对于一个有效的示例,然后调度程序会根据需要重复执行任务: Cancellable task = Akka.system().scheduler().schedule( Duration.create(0, TimeUnit.MILLISECONDS), Duration.create((1000 – tickerDuration/2), TimeUnit.MILLISECONDS), actor, new TickMsg(“Tick”, 0, 120) ); 不幸的是,这种方式有点不舒服,容易忘记,有没有其他方法可以每隔x秒(或其他TimeUnit )重复任务而不将其转换为毫秒和缩短?

在抽象类中使用main方法

我知道在抽象类中使用main方法是合法的,因为Eclipse允许我执行以下操作并将该类作为java应用程序运行。 但做这样的事情有意义吗? 是否存在一个真实的场景,需要在抽象类中使用main方法? public abstract class Automobile { public Boolean powerOn() { // generic implementation for powering on an automobile return true; } public void move() { // generic implementation for move } public void changeDirection(String newDir) { // generic implementation for changing direction } public abstract void accelerate(Integer changeInSpeed); public abstract Integer refuel(Integer inputFuel); […]

如何获取java中的所有网络接口并将信息存储在Java Map中

我是Java编程的新手。 我需要一种方法来使用java获取Linux中的所有网络接口,并将该信息存储在Java Map 。 我在Google中找到了许多以静态方式执行此操作的方法 – 只是如何获取eth0并显示信息。 我的代码需要是可移植的 – 代码必须显示部署在具有2或4个网络端口的服务器上的配置。 我认为最好的方法是使用Java Map获取信息,然后再显示它。 你能帮帮我吗? 最好的祝愿

Jax-RS MessageBodyReader

我正在学习MessageBodyReader方法如何从提供者工作。 我看到该方法返回一个对象,我不知道如何从服务访问该对象。 我可以获得如何从读者类返回对象的解释吗? 这将有助于我为所有dto应用阅读规则。 提前致谢! 服务: @POST @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) @Path(“/CreateAccount”) @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public Response createAccount(@Context HttpServletRequest req) { String a = “Reader success? “;//Would to see that string here! return Response.ok().build(); } 提供者: @Provider public class readerClass implements MessageBodyReader { @Override public boolean isReadable(Class paramClass, Type paramType, Annotation[] paramArrayOfAnnotation, MediaType paramMediaType) […]