我一直在尝试jstl-1.1.2通过 WLST 将可部署库部署到我的 Weblogic 10.3.6,但无法将其部署为library.
我搜索过互联网,找到的每个地方都列出了如何以不同的方式传递给options函数deploy()。
Oracle 的文档也非常没有帮助。
以下是我使用 Google 找到的关于此问题的最新帖子,但它不起作用:
connect('weblogic', 'weblogic1')
edit()
startEdit()
deploy('jstl-1.1.2', path='/opt/Oracle/Middleware/wlserver_10.3/common/deployable-libraries/jstl-1.1.2.war', libraryModule='true')
save()
activate()
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下建议工作的语法;它没有:
options = {}
options.setdefault("libraryModule", "true")
deploy('jstl-1.1.2', path='/opt/Oracle/Middleware/wlserver_10.3/common/deployable-libraries/jstl-1.1.2.war', **options)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了libraryModule=true,libraryModule='true'但libraryModule="true"没有一个有效;它们都会导致deploy命令不执行任何操作。
我多年来一直在使用 Tomcat、JBoss、Glassfish 等。在这些容器中,我使用了 Log4j、JDK Logging 等。这非常简单。
我正在努力从 Weblogic 12c 中的应用程序中获取任何日志记录。日志被写入 stderr 而不是日志文件。
private final static Logger log = Logger.getLogger(TestingService.class.getName());
log.log(Level.SEVERE,"My log " + text);
Run Code Online (Sandbox Code Playgroud)
在管理控制台日志实现中:JDK 严重级别:INFO
如果我按照 log4j Weblogic 配置过程配置 Log4J,则行为是相同的。
我想使用命令行强制关闭 weblogic 服务器。我有一个特定的场景。我编写了一个批处理文件来做一些事情,然后使用stopWebLogic.cmd如下方式关闭 weblogic 服务器:
"%WEBLOGIC_DOMAIN_PATH%\bin\stopWebLogic.cmd"
Run Code Online (Sandbox Code Playgroud)
我已经浏览了这个文件。但我不能遵循这种方法,因为我不想改变stopWebLogic.cmd。有没有办法实现这一目标?
我无法找到解决方案,而且我发现更多人遇到了同样的问题,所以我将其发布在这里。
默认情况下,JAX-WS 服务器(至少对于 WebLogic)不会验证接收到的消息及其关联模式。
这会导致很多问题,因为任何无效值(错误的 xsd:dateTime 格式、数字字段上的字母等)都将导致Java 对象中的空值,包括必填字段。
我需要做的是应该由服务器提供的简单验证。
import com.sun.xml.internal.ws.developer.SchemaValidation;
@Stateless
@WebService(portName="ValidatedService")
@SchemaValidation
public class ValidatedService {
public void operation(@WebParam(name="request") ValidatedRequest request) {
/* do stuff */
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我尝试使用提供的架构验证时,出现以下异常:
Caused By: javax.xml.ws.WebServiceException: Annotation @com.sun.xml.internal.ws.developer.SchemaValidation(handler=class com.sun.xml.internal.ws.server.DraconianValidationErrorHandler) is not recognizable, atleast one constructor of class com.sun.xml.internal.ws.developer.SchemaValidationFeature should be marked with @FeatureConstructor
Run Code Online (Sandbox Code Playgroud)
我不希望实现任何自定义验证器。服务器应该通过简单直接的配置来提供这种类型的服务。
我有一个简单的 JMS 客户端 java 代码,它连接到 weblogic 应用程序服务器并将消息发送到定义的 jms 队列。
对于 JMS 客户端与服务器建立的每个连接,在具有 JMS 队列的 Weblogic 应用程序服务器和运行 JMS 客户端代码的机器之间建立一个底层 TCP 连接。
根据我有限的知识,我认为连接中的本地端口是随机选择的。如果这是错误的,请纠正我。
在我们的生产服务器中,由于一些严格的客户政策,我们被要求将本地端口限制为固定端口范围,而不是任何随机端口。是否可以通过在 JMS 客户端代码中指定任何连接工厂属性来做同样的事情。
E.g.
192.19.81.223 -> m/c where Weblogic is installed
7001 -> Weblogic Server admin port, where the JMS Server is targeted
192.19.105.54 -> m/c where the JMS Client code is running
61372 -> Random port being selected in the m/c where JMS Client is run.
$home > netstat -an|grep 7001
tcp 0 0 ::ffff:192.19.81.223:7001 :::* LISTEN
tcp …Run Code Online (Sandbox Code Playgroud) 我的应用程序正在尝试通过 Weblogic(12) 服务器上的 JNDI 访问数据源。抛出以下异常
weblogic.jdbc.common.internal.RmiDataSource_12212_WLStub 无法转换为 javax.sql.DataSource
这个类 weblogic.jdbc.common.internal.RmiDataSource_12212_WLStub 在哪里出现。
我正在研究用 Apache Tomcat 替换开发机器上的 Weblogic 10.x,如果任何人有任何见解或建议,我将不胜感激。
任何尝试在生产 Web 应用服务器怪物上进行开发工作的人可能都知道更换的原因 - 以提高开发效率。该应用程序很大(数百万行代码),遗留代码库包含大量技术(Struts、EJB 2、EJB 3 等),并且代码库的更改经常需要重新部署/重新启动 Web 服务器(甚至使用 JRebel) - 这需要很长时间(大约 5-10 分钟)。这显然会浪费时间、带来挫败感并导致错误。
我想知道的是 - 考虑这种替代是否可行?代码库稍后将在开发管道中针对真正的 WL 实例进行验证,但对于开发机器,我希望它尽可能精简。这显然不会是一个微不足道的转变,但我讨厌花一周的时间去做一些完全不可能的事情,或者至少是绝对不可取的事情。
很明显,我需要一些实现 JavaEE 规范的东西(不需要正式验证 - 只要它能工作:)),所以我研究了各种可能性,对我来说,Apache TomEE 看起来很有前途。Geronimo 已经死了很久了,Glassfish 似乎陷入了困境(?),而 Jonas 则默默无闻。在 Java 8 下工作将是一个很大的优势(TomEE 1.7 似乎支持)。
最后,我们不使用 XA 事务(两阶段提交),因此至少不需要支持它。
这是一个合理的做法吗?我缺少其他选择吗?有没有转型的经验?欢迎任何想法。
我正在为一个基于 Java 的大型 web 应用程序设计一个新的聊天模块,该应用程序默认使用 Tomcat,但支持我们的一个客户端的 WebLogic。我一直在研究为此目的使用 WebSocket,但我发现 WebSocket servlet 似乎没有通用接口,例如javax.servlet.http.HttpServlet.
因此,考虑到我可能需要为我希望使用的每个 servlet 容器定义不同的 servlet 实现,我该如何处理我 100% 不知道我在哪个容器中的情况?
我开发了一个带有远程接口的 EJB 应用程序。此应用程序部署在 weblogic 12 上。
对于 Java 应用程序,我正在尝试使用我的 EJB 应用程序,但是当我从类 InitialContext 调用方法查找时,我收到此消息“javax.naming.NameNotFoundException:尝试查找 'NewSessionBean.remote' 时没有找到子上下文'新会话豆'
这是来自远程接口的代码:
package co.com.tutorial.stateless;
import java.util.List;
import javax.ejb.Remote;
/**
*
* @author jquintep
*/
@Remote
public interface NewSessionBeanRemote {
void addBook(String bookName);
List getBooks();
}
Run Code Online (Sandbox Code Playgroud)
这是实现代码的一部分:
package co.com.tutorial.stateless;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
/**
*
* @author jquintep
*/
@Stateless
public class NewSessionBean implements NewSessionBeanRemote {
List<String> bookShelf;
public NewSessionBean() {
bookShelf = new ArrayList<String>();
}
Run Code Online (Sandbox Code Playgroud)
这是我调用查找时代码的一部分:
try {
int choice = 1;
NewSessionBeanRemote libraryBean …Run Code Online (Sandbox Code Playgroud) 我是 weblogic 新手,试图尽快放弃它,但现在不可能,所以我必须解决这个问题。也许以下是完全正常和微不足道的。我不知道。请指教。
我在 2 台 PC 上运行 weblogic 12.1.3 几个月了。但突然间,我无法登录到他们两个的管理控制台。我从密码存储输入用户名/密码,但它不被接受。同时,intellij idea 成功登录并使用相同的 pass 部署应用程序。好吧,很公平,我们重置通行证,使用:
https://oracle-base.com/articles/11g/reset-the-adminserver-password-in-weblogic-11g-and-12c
并在 Intellij 设置中更新密码。好的。Intellij 的想法又来了,我无法登录。日志中没有任何内容,应用程序和服务器日志中都没有。
无论我是否通过来自 bash 的 Intellij 运行配置启动 weblogic,我都无法登录。
好的,让我们尝试重新安装 weblogic。没变。
Weblogic 启动并运行,应用程序部署到它,并且响应迅速。访问控制台 URL 时,它被打印出来,该应用程序正在部署,但我仍然无法访问它。清除缓存/烹饪等什么都没有。没有日志,没有错误响应。没有。
对 url j_security_check、console 和 console/ 上“失败”(?) 登录的响应是 http 状态 302(暂时移动)。不确定它是否可以,好吧说我期望 401/403,但也许 302 是拒绝身份验证的有效 weblogic 响应。我不知道。
任何的想法?
weblogic ×10
java ×5
tomcat ×2
weblogic12c ×2
apache-tomee ×1
datasource ×1
ejb ×1
jakarta-ee ×1
jax-ws ×1
jms ×1
jndi ×1
logging ×1
web-services ×1
websocket ×1
wlst ×1