小编And*_*ert的帖子

CDI不适用于简单的适配器

我已将CDI功能添加到server.xml文件中<feature>cdi-1.2</feature>.

我的行家模块包含的beans.xml里面<module_name>/src/main/resources/META-INF的文件夹.

这是beans.xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                           http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
       version="1.1" bean-discovery-mode="all">
</beans>
Run Code Online (Sandbox Code Playgroud)

但是当我使用@Inject注释它不起作用时,我的bean总是如此null.

码:

package ch.webapp.presentation;

...

@Path("/test/")
public class MyController {
    @Inject
    private MyService myService;

    @GET
    @Path("/foo/{count}")
    @OAuthSecurity(scope = "login")
    @Produces("application/json")
    public Response news(@PathParam("count") int count) {
        return Response
                .ok(myService.getBar(count))
                .build();
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

那是我的豆子

package ch.webapp.service;

...

@RequestScoped
public class MyService {
    public String getBar(int count) {
        return "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

我通过扩展MFPJAXRSApplication类来初始化jax-rs …

cdi websphere-liberty ibm-mobilefirst mobilefirst-adapters open-liberty

5
推荐指数
1
解决办法
279
查看次数

使用Gradle编译为比Javac允许的Java级别低的级别

我在Java 12上大吃一惊,并注意到javac最低目标Java级别已提高到1.7。

Execution failed for task ':com.foo:compileJava'.
> error: release version 6 not supported
Run Code Online (Sandbox Code Playgroud)

为什么我要编译为您要求的Java 6?

即使我的代码库要求的最低Java级别为1.7,我仍然希望将内核以较旧的Java级别进行编译,以便JVM可以启动,并且我可以输出一条更好的错误消息,指示必须使用Java 7+,而不是更多。神秘的不兼容类版本错误。

展望未来...

Java 6并不是太大的问题,但是我主要关心的是,如果Java仅支持N-5版本,那么到Java 14(大约从现在开始),我将不再能够编译为Java 8。仍然是一个非常流行的运行时版本。

我相信Maven可以通过工具链解决此类问题,但是Gradle是否提供类似的功能?

编辑:我还注意到JEP 182尚未批准,但是如果批准将意味着仅支持N-3版本。

java gradle java-12

5
推荐指数
0
解决办法
113
查看次数

Maven 和 Ivy 依赖项解析在 Gradle 6.0 中失败

我有一个工作项目依赖于这样的对等组件生成的 Maven 工件:

repositories {
   ivy {
       url "../cnf/local"
   }
}

configurations {
  ejbTools
}

dependencies {
  ejbTools 'test:com.ibm.ws.ejbcontainer.fat_tools:1.+'
}
Run Code Online (Sandbox Code Playgroud)

test:com.ibm.ws.ejbcontainer.fat_tools:1.+Gradle 6.0 无法解决依赖项,并显示以下错误:

> Task :com.ibm.ws.ejbcontainer.async_fat:addEJBTools FAILED

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/aguibert/dev/git/open-liberty/dev/com.ibm.ws.ejbcontainer.async_fat/build.gradle' line: 32

* What went wrong:
Execution failed for task ':com.ibm.ws.ejbcontainer.async_fat:addEJBTools'.
> Could not resolve all files for configuration ':com.ibm.ws.ejbcontainer.async_fat:ejbTools'.
   > Could not find any matches for test:com.ibm.ws.ejbcontainer.fat_tools:1.+ as no versions of test:com.ibm.ws.ejbcontainer.fat_tools are available.
     Searched in the following locations:
       - …
Run Code Online (Sandbox Code Playgroud)

ivy dependency-management gradle maven

5
推荐指数
1
解决办法
1221
查看次数

sun.misc.Service的替换类

我有一些依赖于sun.misc.ServiceAPI的旧(pre java 6)代码,例如:

sun.misc.Service.providers(MyServiceProvider.class);
Run Code Online (Sandbox Code Playgroud)

Java 9中正在删除此类(不仅仅是内化).

我可以使用哪种备用Java SE API?

java java-9

4
推荐指数
1
解决办法
726
查看次数

getServletContext()。getRealPath(“”)在WebSphere Application Server Liberty中返回null

我以前在本地环境中使用Tomcat v9.0,同时使用

getServletContext()。getRealPath(“”)

检索路径,服务器返回

.... metadata.plugins \ org.eclipse.wst.server.core \ tmp1 \ wtpwebapps \ WebApp \

但是,当客户端运行WebSphere Application Server Liberty时,我在机器上安装了相同的软件,但是在Tomcat中返回路径的相同代码会返回

空值

在Websphere环境中。您能否帮助我了解为什么会发生这种情况以及如何在Websphere环境中获得通行证。我也检查了以下链接https://www.ibm.com/developerworks/community/forums/html/topic?id=eb04c8ae-02d4-421b-af2c-2ef626a3db1b&ps=50&tags=&query=&filter=&sortBy=&order=asc,但找不到解决方案。

eclipse websphere-liberty open-liberty

4
推荐指数
1
解决办法
304
查看次数

Websphere Classic 与 Liberty 中的 EJB 支持

我正在开发一个项目,我们计划使用 WLP(WebSphere liberty)而不是传统的 WAS。

该代码具有用于不同组件的 ejb 模块(ejb 2 和 3)。一个组件的 EJB 客户端被其他一些组件用来与 EJB 服务器模块进行通信。

我知道 liberty 有一些 ejb 功能。但是 liberty 是否具有与 WAS 9 中提供的相同级别的 EJB 支持/功能?

自由使用 EJB 有哪些限制/问题?

websphere ejb websphere-liberty

4
推荐指数
1
解决办法
2731
查看次数

使用 JSON-B / Yasson 将 JSON 反序列化为多态 POJO

我在资源类中有一个 PATCH 端点,其中一个抽象类作为请求主体。我收到以下错误:

22:59:30 SEVERE [or.ec.ya.in.Unmarshaller] (on Line: 64) (executor-thread-63) Can't create instance
Run Code Online (Sandbox Code Playgroud)

似乎因为我声明为参数的身体模型是抽象的,所以它无法反序列化。

我期待得到 Element_A 或 Element_B

如何声明主体是多态的?

这是元素层次结构

public abstract class BaseElement {
    public String name;
    public Timestamp start;
    public Timestamp end;
}

public class Element_A extends BaseElement{
    public String A_data;
}

public class Element_B extends BaseElement{
    public long B_data;
}
Run Code Online (Sandbox Code Playgroud)

这是我的端点的资源类

@Path("/myEndpoint")
public class ResourceClass {

    @PATCH
    @Path("/{id}")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.TEXT_PLAIN)
    public Response updateEvent(@Valid BaseElement element, @Context UriInfo uriInfo, @PathParam long id) {
        if (element instanceof Element_A) { …
Run Code Online (Sandbox Code Playgroud)

java resteasy jsonb-api yasson quarkus

4
推荐指数
1
解决办法
650
查看次数

WebSphere Liberty + Springboot + Hibernate + JNDI

我正在尝试将小型应用程序从Tomcat迁移到WebSphere。为了做到这一点,我正在从头开始重新构建它,分别解决主要组件。我在webSphere Liberty上的数据访问/ JNDI方面很挣扎。我懂了

javax.naming.NameNotFoundException:javax.naming.NameNotFoundException:java:comp / env / jdbc / test

SERVER.xml

<featureManager>
<feature>webProfile-8.0</feature>
<feature>localConnector-1.0</feature>
<feature>adminCenter-1.0</feature>
<feature>javaee-8.0</feature>
<feature>jndi-1.0</feature>
<feature>concurrent-1.0</feature>
Run Code Online (Sandbox Code Playgroud)

 <dataSource id="test" jndiName="jdbc/test" type="javax.sql.DataSource">
    <jdbcDriver libraryRef="MySQLLib" />
    <properties databaseName="test" serverName="localhost" portNumber="3306" user="user" password="mypassword" />
    <jdbcDriver>
      <library id="MySQLLib">
        <fileset dir="/Library/JDBC/" includes="mysql-connector-java-5.1.14-bin.jar" />
      </library>
    </jdbcDriver>
  </dataSource>
Run Code Online (Sandbox Code Playgroud)

数据配置类

@Configuration
public class DataSourceConfig {

@Resource(lookup = "java:comp/env/jdbc/test", name="java:comp/env/jdbc/test")
private DataSource dataSource;
Run Code Online (Sandbox Code Playgroud)

我也尝试过这种方法:

@Bean
public DataSource dataSource() throws NamingException {
    return (DataSource) new JndiTemplate().lookup("java:comp/env/jdbc/test");
}
Run Code Online (Sandbox Code Playgroud)

spring jndi websphere-liberty spring-boot open-liberty

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

减少要部署到websphere的war文件的大小

我有一个大约500-700mb的war文件,在生产环境中部署需要非常长(1-1.5小时).

大多数jar文件都是第三方库,除非有升级,否则很少会更改.

我正在考虑将第三方库移动到服务器的类路径以减小war文件的大小并缩短部署时间.

这是一个好方法吗?

我使用Websphere和maven作为构建工具.如果我能够将这些第三方库从我的webapp移动到我的服务器类路径,我将能够将依赖范围从编译更改为提供.

服务器仅用于我的系统,我不怕任何类路径冲突.

java websphere maven websphere-traditional

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

如何将 Angular 与 Liberty WebSphere Server 结合使用

我有一个在 Liberty WebSphere Server 17.0.0.2 上使用 AngularJS + JSP 的项目,现在我必须对其进行升级。该项目需要升级到 Angular 4 + Liberty,我不知道如何正确执行。

我现在尝试过的是:

使用 Angular-CLI 构建项目以生成dist文件夹。然后,我将dist放在WEB-INF > views 上。我还对 spring-context.xml、web.xml 和 server.xml(在 Liberty 端)进行了引用,但在尝试访问 localhost:9090/AngularPoC/dist/index 时得到的只是 404 错误

先感谢您。

websphere-liberty angular open-liberty jakarta-ee

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

ConstraintValidator 两次调用 isValid() 方法

任何 Body 解释我为什么 ConstraintValidator 类的 isValid() 方法被调用两次?
例如,这是我的示例代码:

@POST
@Path("/json/dog")
@Produces("application/json")
@Consumes("application/json")
public Response getDogByJson(@ValidAnimal JsonObject jsonObject) {
      return Response.ok("ok").build();
}



@Constraint(validatedBy = {AnimalValidation.class})
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface ValidAnimal {

    String message() default "This is not valid !";

    Class<?>[] groups() default { };

    Class<? extends Payload>[] payload() default { };
}   



public class AnimalValidation implements ConstraintValidator<ValidAnimal, JsonObject> {

    @Override
    public void initialize(ValidAnimal constraintAnnotation) {

    }

    @Override
    public boolean isValid(JsonObject jsonObject, ConstraintValidatorContext context) {
        System.out.println(">>>>>> : " + jsonObject);
        return true; …
Run Code Online (Sandbox Code Playgroud)

jax-rs jersey open-liberty java-ee-8 jakarta-ee

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

有没有办法将WebSphere 8.5.5.10升级到版本9?

有没有办法将WebSphere 8.5.5.10升级到版本9?

使用IBM Installation Manager安装修订包时,我只添加repository.config,但在为版本9添加repository.config之后,我只有安装选项.

websphere websphere-traditional

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

Websphere自由力量连接回到游泳池

假设某段代码从池中获取连接并且没有将其返回池中.

我想知道如果在一些空闲时间后连接上没有识别出任何活动,那么自由中是否有任何设置会强制连接回池,可能是10秒.

我正在使用自由8.5.5.9

websphere websphere-liberty open-liberty

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