Using spring together with jbossws-cxf on jboss 6 - spring

I want to use spring together with jbossws-cxf. Is this possible?
First I tried using jbossws-cxf.xml with bean definitions of spring. The warning message [DescriptorDeploymentAspect] Spring not available, skipping check for user provided jbossws-cxf.xml / cxf.xml configuration files. states that the file gets ignored and means that you should install spring in order for it to not get ignored :-) . So I installed spring for jboss..
After installation and running of a simple MathWS together with a simple WS example I get a
[org.jboss.wsf.stack.cxf.client.configuration.JBossWSSpringBusFactory] INITIAL_APP_CONTEXT_CREATION_FAILED_MSG: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cxf.binding.soap.customEditorConfigurer' defined in URL [vfs:/D:/lifeDevSuite/jboss/jboss-6.0.0.FinalSpring/common/lib/cxf-rt-bindings-soap.jar/META-INF/cxf/cxf-extension-soap.fixml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.ArrayList' to required type 'org.springframework.beans.PropertyEditorRegistrar[]' for property 'propertyEditorRegistrars'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.apache.cxf.binding.soap.spring.SoapVersionRegistrar] to required type [org.springframework.beans.PropertyEditorRegistrar] for property 'propertyEditorRegistrars[0]': no matching editors or conversion strategy found
error.
My jbossws-cxf.xml looks like this:
`
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<bean id="mathBean" class="com.sample.MathWS">
<constructor-arg value="alabama" />
</bean>
<jaxws:endpoint id="MathWSX" implementor="#mathBean" address="http://localhost:8080/HelloCXF" />
`

I solved the problem. Sadly - I cannot recall how. And please forgive me - but I'm not going back to try and reproduce it :-)
Basically the answer is "yes". To that specific problem, it may have been a namespace problem, e.g. correct would be
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
It may have been as well that custom spring libraries were deployed (I think it is recommended using the spring libraries coming with jboss and are deployed dynamically automagically)
It may have been something else alltogether

Related

Importing beans from package in Spring - Unexpected exception parsing XML document

--- Not Important ---
Hi, this is my first question and I'm not really good at english, so I'm sorry if I don't explain myself well.
I'm currently starting to learn Java Web with Spring Framework from free online courses, but almost everytime I write the code that the teacher writes, I get exceptions and have to search the problem on Google, this time I got an error that I didn't find.
--- Important ---
I'm trying to automatically "import" beans from a package in order instead of "import" them manually (I write them with quotation marks because I don't know what is the word for that) but when I run the code I get this exception:
Unexpected exception parsing XML document from class path resource [beans.xml]; nested exception is java.lang.NoSuchMethodError: 'java.lang.String org.springframework.util.StringUtils.uncapitalizeAsProperty(java.lang.String)
And this is my beans.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.principal"/>
</beans>
I don't have any idea what's going on, so I hope you guys can help me, thanks in advance, you're awesome c:

Spring Security Configuration : You cannot use a spring-security-2.0.xsd or spring

Could anybody help on this.
I am getting below exception not sure why?
Exception while starting server
Configuration problem: You cannot use a spring-security-2.0.xsd or
spring-security-3.0.xsd or spring-security-3.1.xsd schema with Spring
Security 3.2. Please update your schema declarations to the 3.2
schema.
could anybody help in this please. I am using 3.0.5.RELEASE in Pom.xml and giving spring-security-3.0.xsd in security-context.
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">
**Please update your schema declarations to the 3.2 schema.**
Change schema declaration to 3.2..because you may be using Spring security 3.2 jar( exception ..or spring-security-3.1.xsd schema with Spring Security 3.2.)
http://www.springframework.org/schema/security/spring-security-3.2.xsd"
Or don't mention the version,it will automatically take the higher version provided.
http://www.springframework.org/schema/security/spring-security.xsd"

Spring bean configuration xml

In Spring config xml we have tag and in that tag we have xmlns, xsi etc..
what all these details means ? When and how these details matters?
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
</beans>
thanks,
You can find the nice answer of xsi:schema use here Use of xsi:schemaLocation
And this spring document will help you understand the spring configuration in details XML Schema-based configuration

Error in spring xsd

I am creating a apache-camel spring dsl application.
In the camel-config.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
This is showing error
Multiple annotations found at this line:
- Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans.xsd). For more information, right click on the message
in the Problems View and select "Show Details..."
- Start tag of element
on show details
s4s-elt-character: Non-whitespace characters are not allowed in schema elements other than 'xs:appinfo' and 'xs:documentation'. Saw 'Error'.
Do you have more than just this piece of xml, I bet your error is in some invalid xml you have typed yourself. There is plenty of Spring + Camel XML examples out there you can take look at, that works, for example:
https://github.com/camelinaction/camelinaction/blob/master/chapter2/spring/src/main/resources/META-INF/spring/camel-context.xml

Spring claiming that identical classnames are different

I'm making my first forays into spring and am getting the following error trying to run on eclipse:
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'model' must be of type [com.myCompany.project.Model], but was actually of type [com.myCompany.project.Model]
Code causing the exception:
import com.myCompany.project.Model;
// some code
public Model getModel() {
ClassPathXmlApplicationContext applicationContext =
new ClassPathXmlApplicationContext("client-context.xml");
return applicationContext.getBean("model", Model.class);
}
Spring xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<bean id="model" class="com.myCompany.project.Model" />
</beans>
The client-context.xml is located in project/resources, the code in project/src/main/
I assume this is a classpath issue, but I am at a loss as to what to do to fix it.
Java and Spring are case sensitive. This:
<bean id="model" class="com.myCompany.project.model" />
is not the same as this:
<bean id="model" class="com.myCompany.project.Model" />
I'd think about some better names. Those aren't very insightful.
I don't like the way you're going about this. You shouldn't have a bean that has to access the app context this way. You'll have to post more code to be sure, but you ought to be wiring that model bean into object that wants it, not doing what you're doing.
The only reason for doing what you're proposing is if the bean interacting with the app context is creating using new rather than the Spring bean factory. Since you're just starting with Spring, I would recommend letting Spring handle all dependencies.

Resources